实际上,第一种情况和第二种情况都不显示来自会话的消息。它在值堆栈中查找变量。在第一种情况下,您具有操作属性getter,该属性返回一个值。在第二种情况下,它可能不是相同的值。在动作类中使用会话的正确方法是实现
SessionAware通过
servletConfig拦截器注入到动作bean属性的会话映射。然后使用该映射而不是http会话。请参阅我们如何访问该会话。
public String addUser() throws NoSuchAlgorithmException { ~~HttpSession currentSession = request.getSession();~~ Map currentSession = ActionContext.getContext().getSession(); User u = new User(); u.setUname(getUserName()); u.setPassword(StringHash(getUserPass())); u.setUtype(getUserType()); plResponse = iUserDAO.addUser(u); setActionMessage(plResponse.getMessage()); ~~currentSession.setAttribute("actionMessage", this.actionMessage);~~ currentSession.put("actionMessage", getActionMessage()); return SUCCESS; }在JSP中,您可以从上下文访问会话对象。
<s:if test="#session.actionMessage != null && #session.actionMessage != ''"> <div > <br/><s:property value="#session.actionMessage"/> </div> <br /></s:if>



