gpt4 book ai didi

struts2 - 在 struts2 中将消息从 action 传递给 JSP

转载 作者:行者123 更新时间:2023-12-04 05:28:06 26 4
gpt4 key购买 nike

我正在尝试使用 addActionMessage()addActionError()将来自操作的消息和错误(例如在 execute() 中)传递到转发页面。

在 JSP 中,我使用:

<s:if test="hasActionMessages()">
<s:actionmessage/>
</s:if>

显示此类消息。

但没有显示任何消息。我想知道是否有人可以解决此问题,或提出其他解决方案。我是 Struts 和 Web 开发的新手,我不确定将消息从操作传递到页面的正确模式是什么。

编辑: Action 映射代码和java代码
<action name="myAddUser" class="org.any.backend.action.UserAdminAction" method="addUser">
<result name="success" type="redirectAction">myUserAdmin</result>
<result name="input" type="redirectAction">myUserAdmin</result>
</action>

java 代码:
    public String addUser() throws Exception {
// check duplicate
for (User u : userList)
if (u.getUserName().equals(userName)) {
addActionError("A user with the same user name already exists. Choose another user name. ");
return INPUT;
}
if (userName != null && !userName.isEmpty() && password != null && !password.isEmpty()) {
User newUser = new User();
newUser.setUserName(userName);
newUser.setPassword(password);
userList.add(newUser);
addActionMessage("User " + userName + " added. ");
return SUCCESS;
} else {
addActionError("User name and password cannot be empty");
return INPUT;
}
}

最佳答案

你的代码是对的。

也许您正在使用 REDIRECT-ACTION 结果类型或 CHAIN。
它们都将丢失操作消息和错误,迫使您将它们置于此页面的 session 中(并在显示后清除它们)。

编辑:我假设您正在使用该块

<s:if test="hasActionErrors()">
<s:actionerror />
</s:if>
<s:if test="hasActionMessages()">
<s:actionmessage/>
</s:if>

不仅是张贴的,否则您将永远不会看到错误,只会看到消息......

关于struts2 - 在 struts2 中将消息从 action 传递给 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945949/

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