今天做的项目中遇到这样的一个问题,后台代码都是对的。jsp页面是这样,一个表单,执行完动作之后返回结果信息。
使用的是jsp标准标签库中的<c:if> 后面的test判断条件写的是后台action传过来的success或者error是否为空(empty 或者not empty),在struts.xml中也配置了相应的result。现象是一直进不去<c:if>或者直接跳过<c:if>显示里面的语句在页面上。检查完是不是某些库未加进来之后,确定不是那些原因。最终找到struts.xml。
开始是这样写的
<action name="updateUserPage" class="IrrUpdateUserAction">
<result name="error" type="redirect">/userManagement/userUpdate.jsp?error=1</result>
<result name="success" type="redirect">/userManagement/userUpdate.jsp?success=1</result>
</action>
这种做法,需要的事件是实现的,通过查看数据库等,但是页面上得不到反馈。说明表单通过action的get或者post方法已经执行完,return相应结果后找不到相应的action(这里所说指struts里面的),可是为什么这样的写法没有报错呢?
最终,修改为
<action name="updateUserPage" class="IrrUpdateUserAction">
<result name="error" type="redirect">/userManagement/IrrUpdateUserPage?error=1</result>
<result name="success" type="redirect">/userManagement/IrrUpdateUserPage?success=1</result>
</action>
之后,页面得到结果的显示。该红色字部分为上面jsp所配置的action名字。
就是因为jsp处理不了有参数的问题?
原文:http://www.cnblogs.com/nimi/p/5365127.html