Struts2 - 使用 OGNL 从静态列表字符串属性设置属性不起作用

2023-12-01

我正在尝试使用 struts2 框架设置隐藏的输入值。输入值是一个不变的值,所以我想通过静态引用来设置它,而不是担心可能在控制器中的多个位置设置它。

这是列表定义:

     package com.packagename.models;
     public class UsernameModel implements Serializable, Comparable<UsernameModel> {

          ...
          /**
          * <P>A static container of the predefined username types.
          */
          public static final class UsernameTypes {
           public static final String ALIAS = "Alias";
           public static final String ASSIGN_NUM = "Assignment Number";
          }
          ...
      }

我意识到这可能超出了问题的范围,但是当我尝试像这样引用隐藏输入中的属性时,它会引发异常:

<s:hidden name="username_type" value="<s:property value="@com.packagename.models.UsernameModel.UsernameTypes@ALIAS" />"></s:hidden>

org.apache.jasper.JasperException:/WEB-INF/content/user/profile.jsp (行:185,列:64)未终止的

如果我从 s:hidden 输入中删除属性标记,异常就会消失,但“别名”字符串应在的位置不会出现任何文本。

- 提前致谢


你不能像这样嵌套标签。要引用内部类,您需要使用$ sign.

<s:hidden name="username_type"
          value="%{@com.packagename.models.UsernameModel$UsernameTypes@ALIAS}" />

IMO 最好直接在类中使用这种静态变量,而不是从 JSP 发送它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts2 - 使用 OGNL 从静态列表字符串属性设置属性不起作用 的相关文章

随机推荐