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() 方法上的断点也不会走了,页面也没有什么错
保存后页面也没有异常,如下图 展开
<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() 方法上的断点也不会走了,页面也没有什么错
保存后页面也没有异常,如下图 展开
展开全部
不进入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属性试试吧。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询