当前位置: 首页 > 面试题库 >

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

呼延鹏云
2023-03-14
问题内容

我正在尝试使用struts2框架设置隐藏的输入值。输入值是一个不变的值,因此我想通过静态引用进行设置,而不用担心可能在Controller中的多个位置进行设置。

这是列表定义:

     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标签

如果我从s:hidden输入中删除了属性标签,则异常消失了,但是“ Alias”字符串所在的位置没有文本出现。

- 提前致谢


问题答案:

您不能嵌套这样的标签。要引用内部类,您需要使用$符号。

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

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



 类似资料:
  • 我尝试将ini文件解析为可以在ant脚本中使用的属性。我有以下几点: 我试图做的是解析所有的name=value对,并将它们放入属性中,如:section。名称=值; 不知何故,“echoMsg”目标中没有记住该部分。我想记住部门名称。 所以 应该成为: 这是我的ant脚本的输出: 如您所见,未设置最后一个“${prevSection}”。我希望它是“全球性的”。 我试着用它来代替财产,但没有区别

  • 模型静态属性 [ ] model 定义一个模型 'use strict'; module.exports = app => { const { STRING, INTEGER, DATE } = app.Sequelize; const Post = app.model.define('post', { id: { type: INTEGER, prima

  • 在这里,我想在动态下拉列表中设置一个属性“selected”,当它在MVC中的HttpPost之后被单击时,它会显示相同的第一个文本“请选择一个类别”。 从HttpPost重载后,我想通过使用值来检查和设置选项标签中的属性“选择”,在Foreach循环选项标签中的动态下拉中获得“选择”属性。

  • 我有一个Spring的豆子,定义为: 但是,属性< code > prop . loyalty . expering . points . time zone 导致< code > TypeMismatchException 出现以下消息: org.springframework.beans。TypeMismatchException:无法将类型“java.lang.String”的属性值转换为所

  • el-date-picker defaultTime 动态赋值不生效

  • 我在一个android应用程序中工作,正在使用一个DialogFragment来显示一个对话框,我想让那个DialogFragment不可取消。我已经将对话框可取消属性设置为false,但它仍然不受影响。 请查看我的代码,并建议我一个解决方案。