Struts2.0 页面不走 Action 里面的方法

Struts配置信息<packagename="work"extends="struts-default"namespace="/work"><actionname="*... Struts 配置信息
<package name="work" extends="struts-default" namespace="/work">
<action name="*sysAttach" method="{1}" class="AttachmentAction"> <result name="input">/pages/sysattachment/attachement.jsp</result> </action>
</package>

进入添加附件页面
OpenMaxWindow("../work/toAddsysAttach.action?attachment.tableId="+attachmentId+"&attachment.tableName="+tableName);

可以进去

添加页面form
<s:form theme="simple" action="savesysAttach" namespace="/work" method="post" id="AttachFileForm" enctype="multipart/form-data">
······
·····
···
</s:form>

点击保存,Action里面的 save 方法不被执行
打断点也不会走断点,数据库也没有添加数据

Action 方法

/** * 去添加附件页面 * @return */ public String toAdd() { String hql = " from SysAttachment where tableName='"+attachment.getTableName()+"' and tableId='"+attachment.getTableId()+"'" ; list = attachmentServices.findAll(hql) ; return INPUT ; } /** * 保存添加附件 * @return */ public String save() { attachmentServices.save(attachment); return INPUT; }

就是死活不执行save()方法
配置也没有问题
第二次再进入添加附件的时候 toAdd() 方法上的断点也不会走了,页面也没有什么错

保存后页面也没有异常,如下图
展开
 我来答
vampire_c
推荐于2018-04-30 · TA获得超过735个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:485万
展开全部

不进入save方法,可能是由于某个参数传递失败导致的。

你的Action看来是继承了ActionSupport类,并且action package继承的是struts-default,struts2默认包里有一个Workflow拦截器,它对继承了ActionSupport类的action有这么一个假设:

  如果有参数传递或转换失败,那么不进入action方法,而直接返回INPUT。

这种情况我曾遇到过多次,也很可能是产生你遇到的这种现象的原因。

关于如何检查是不是这种原因,可以查看一下console日志里是否有参数转换失败等的异常信息,另外,可以在save方法上加上InputConfig:

@InputConfig(methodName="toAdd")
public String save() {
}

InputConfig标注是告诉Workflow拦截器,如果不调用save,那么去调用toAdd方法。然后看看提交页面的时候toAdd中的断点是否会被断下,如果被断下了,说明真的是遇到这种情况了,再查查是哪个参数传递失败了。

匿名用户
2013-06-14
展开全部
将s:form的action属性添加个后缀.action试试,不行的话在把namespace属性改为../work 或者 将s:form的action改为../work/savesysAttach.action 之后去掉namespace属性试试吧。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式