struts2 - struts2中将消息从action传递到JSP

标签 struts2 struts action

我正在尝试使用 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 中(并在显示后清理它们)。

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

<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/

相关文章:

java - Struts 标签覆盖实际的上下文路径

ios - 如何知道tableView开始滚动

python - 使用服务器操作运行 python 代码时出错

libgdx - 等待 Actor 完成一个 Action

java - REST 和非 RESTful URL 的组合不起作用

java - 在struts.xml <package name =""extends =", ,"> 可以继承多个包吗?

java - Struts2 正则表达式验证负数问题

url-rewriting - UrlRewriteFilter 正在更改我的 Web 应用程序的上下文路径

java - Struts - 从 JAR 文件加载结果模板(如 JSP)

java - tomcat 8 在服务器上运行时出现问题,如磁盘空间不足