gpt4 book ai didi

java - 如何使用 Struts 2 在 JSP 中打印 session 属性

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:12 27 4
gpt4 key购买 nike

这是我所拥有的:

Java 类(添加用户):

public String addUser() throws NoSuchAlgorithmException {
HttpSession currentSession = request.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);

return SUCCESS;
}

Java 类(添加关联):

public String saveAssoc() throws Exception {
HttpSession currentSession = request.getSession();

try {
plResponse = iUserDAO.saveUserAssoc(currentSession.getAttribute("selectedUser").toString(), countryId, langId);

refreshUserAssociations();

setActionMessage(plResponse.getMessage());
currentSession.setAttribute("actionMessage", this.actionMessage);
}
catch (Exception e) {
throw new Exception(e.getMessage());
}
return SUCCESS;
}

JSP(两种情况相同):

<s:if test="actionMessage != null && actionMessage != ''">
<div class="successMessage">
<br/><s:property value="actionMessage"/>
</div>
<br />
</s:if>

我有两种将返回消息传递到页面的情况。添加用户之后以及添加用户关联之后。在这两种情况下,参数都正确传递到 session (我调试了代码),但仅在第一种情况(添加用户)中显示。第二种情况假装 session 中没有 actionMessage

可能是什么原因?

最佳答案

实际上,第一种情况和第二种情况都没有显示 session 中的消息。它正在值堆栈中查找变量。

在第一种情况下,您有返回值的操作属性 getter。在第二种情况下,它可能不是相同的值。

在操作类中使用 session 的正确方法是实现通过 servletConfig interceptor 注入(inject)的 SessionAware到操作 bean 属性的 session 映射。

然后使用该映射而不是 http session 。请参阅How do we get access to the session .

public String addUser() throws NoSuchAlgorithmException {    
Map currentSession = ActionContext.getContext().getSession();
User u = new User();
u.setUname(getUserName());
u.setPassword(StringHash(getUserPass()));
u.setUtype(getUserType());
plResponse = iUserDAO.addUser(u);
setActionMessagee(plResponse.getMessage(currentSession.put("actionMessage",getActionMessagee()));
return SUCCESS;
}

在 JSP 中,您可以从上下文访问 session 对象。

<s:if test="#session.actionMessage != null && #session.actionMessage != ''">
<div class="successMessage">
<br/><s:property value="#session.actionMessage"/>
</div>
<br/>
</s:if>

关于java - 如何使用 Struts 2 在 JSP 中打印 session 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783219/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com