日期:2014-05-20  浏览次数:20752 次

请教个struts2 验证跳转的问题
问题是这样的,我这个也是刚刚发现这个问题
譬如我有个页面是addNews.jsp 新闻添加页面,有新闻标题、分类、新闻内容等信息。然后分类在action里面查询出来
在addNews.jsp页面里直接引入这个<s:action 这个标签来显示action处理的新闻分类
校验失败的时候在addNews.jsp给予提示 
struts2配置文件如下:
<action name="saveOrUpdate" class="saveOrUpdate">
  <result name="input">addNews.jsp</result>
  <result>addNews.jsp</result>
</action>
但校验失败action跳转到addNews.jsp页面的时候 新闻分类就出不来了,就是说<s:action>这个引入action的标签就不执行了

问题不知道该怎么解决了,望高手给予解决下,分不够再加

------解决方案--------------------
那是因为你在验证失败的时候加入的提示已经被覆盖。
解决方法:
把你的错误提示保存到request中。在页面判断是否为null然后显示输入。
------解决方案--------------------
把你想在页面显示的数据放在 validate()方法 去赋值.

都去 把 struts 2 规范补一补再来回答问题,好吧 ?

一个个都在那里想当然

警告 LZ ,使用了 struts 2 ,不到不得已, 不要在 Action 中操作 ServletActionContext .request.session 等

struts 2 采用的是 值栈的存储形式,即 后进先出,在 Action 赋值即可在页面取
且使用了 struts 2 就可以把 jstl 那一套给抛弃了,页面上要取值,尽量用 <s:property value="" />

有时候 sun 的规范也不是那么好. thinking in java 中 泛型也有提到. opensymphony 在这方面做得好多了