java - 如何从jsp访问java接口(interface)

标签 java jsp struts2

我试图从我的 jsp 访问常量接口(interface),但它显示以下错误。

Caused by: tag 'select', field 'list', name 'title': 
The requested list key 'Constants.TITLE' 
could not be resolved as a collection/array/map/enumeration/iterator type. 
Example: people or people.{name} - [unknown location]

我的界面

public interface Constants {
    public List<String> TITLE = Arrays.asList("Mr","Mrs","Ms","Miss"); 
    // public String[] TITLE = {"MR","MRs"}; << does not work as well
   //public static final String[] TITLE = {"MR","MRs"}; << does not work as well
}

我的 Jsp 代码

...
<%@page import="com.myconstants.Constants" %>
<head>
</head>
<body>
     <s:form>
     <s:select label="title" name="title" list="Constants.TITLE" value=" "/>
     </s:form>
 ....

最佳答案

开设一个类。将列表放在一个类中。使用正常的 OGNL 静态属性访问:

<s:select key="title" list="@some.package.Constants@TITLES" />

我会这样做吗?可能不会;更难 I18Nize,更难在 JSP 中查找/重构用法(取决于 IDE)。一般来说,我建议通过操作中的服务/层将数据公开到 View 层。

关于java - 如何从jsp访问java接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14824472/

相关文章:

java - 如何忽略struts2 Action 中的根JSON节点

java - 使用 Apache Struts 2 在 JSP 中获取表单信息

java - 从带有波斯字符的数据接收字节数组

eclipse - 这里有什么异常(exception)?

java - 尝试在 Ubuntu 上运行 jshell 时,当前未安装程序 'jshell'

java - 使用 & 符号从 url 获取请求参数

html - 在 JSP 标签中导入 CSS

java - validate.xml 之后的 validate() 方法

java - 如何从选择路径或选择属性 ximpleware 中获取属性值

google-app-engine - 如何使用 Java API 将超过 32Mb 的文件上传到谷歌云存储