Action里设置session出现问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 15:08:11
例如我再Action里写个:

HttpSession session = request.getSession();session.setAttribute("user","me");return mapping.findForward("ok");

那么我在ok页面用

<%=(String)session.getAttribute("user")%>

结果会显示null。不明白为什么,而且我测试在jsp页面设置的session可以很好的传递到下一个页面。
还有在用ActionForm的validate的时候,发现它根本不起作用,不管前边的页面传递过来什么值,照样不会出现错误信息,我想知道是什么原因。我那儿写错了,还是Struts本身不能在任何环境都能工作的很好?
问题自己解决了
路径问题,把所有文件从子文件夹放到父文件夹就好了。

一种可能是session没得到,用HttpSession session = request.getSession(true);这句的意思是如果没有得到session,那么创建一个.

第二个问题,你在struts-config.xml里配置action的时候,加上validate=true,并且在你的form里写validate方法,然后把错误或成功信息添加到request范围内,在页面这么引用
<logic:messagesPresent>
<html:messages id="error">
<bean:write name="error"/>
</html:messages>
</logic:messagesPresent>
你把你的验证代码,和配置文件都写出来才好找错,顺便说Struts本身是没有问题的。

我拿你的代码试了一下,我可以得到“me”呀,

struts-config.xml:

<action-mappings>
<action path="/TestAction" type="com.test.TestAction" name="TestAction">
<forward name="ok" path="/jsp/display.jsp" />
</action>
</action-mappings>

web.xml:

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</serv