如何在Spring中从JSP表达式语言调用Java常量变量?

Adr*_*dry 3 java jsp weblogic spring-mvc scriplets

我花了一天时间寻找正确的解决方案,但没有运气!问题是,例如,如何使用jel $ {bean.objectName}从jsp调用Java常量变量。最佳做法是什么?

我想知道这是否可行,对于Spring和jsp来说还是很新的。

常量类:

public class RNConstant {
     public static final String HELLO_WORLD = "Hello World again!";
     public static final String DEFAULT_LOCALE = "id_ID";
     public static final String CONTEXT_PATH_SOAP_SR = "soap.sr";
}
Run Code Online (Sandbox Code Playgroud)

用EL调用jsp中的期望

 <p>${RNConstant.HELLO_WORLD}</p>
Run Code Online (Sandbox Code Playgroud)

我可以使用scriptlet进行以下操作,但是如果它在weblogic中运行,则无法正常工作。这适用于apache tomcat v7或v8

<%@ page import="static id.co.telkom.common.RNConstant.*" %>
 ...
 ...
<%= HELLO_WORLD %>
Run Code Online (Sandbox Code Playgroud)

Weblogic中的错误

home.jsp:2:18: Syntax error on token "static", Identifier expected after this token
<%@ page import="static id.co.telkom.common.RNConstant.*" %>
             ^-------------------------------------^
home.jsp:11:19: HELLO_WORLD cannot be resolved
Hello world!  <%=HELLO_WORLD%>
                     ^--------^
Run Code Online (Sandbox Code Playgroud)

Java版本:1.6

pom.xml

 spring
 <version>1.0.0-BUILD-SNAPSHOT</version>
 <properties>
    <java-version>1.6</java-version>
    <org.springframework-version>3.2.8.RELEASE</org.springframework-version>
    <org.springjs-version>2.0.5.RELEASE</org.springjs-version>
    <org.springws-version>2.2.1.RELEASE</org.springws-version>
    <org.springsecurity-version>3.2.3.RELEASE</org.springsecurity-version>
    <jackson-version>1.9.10</jackson-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
 </properties>
Run Code Online (Sandbox Code Playgroud)

Scriplet问题已通过以下代码解决,并且RNConstant的内容仍然相同。

<%@ page import="id.co.telkom.common.RNConstant" %>
...
...
<%= RNConstant.HELLO_WORLD %>
Run Code Online (Sandbox Code Playgroud)

干杯,

亨德利

小智 5

保持导入语句简单

<%@ page import="static id.co.telkom.common.RNConstant.*" %>
Run Code Online (Sandbox Code Playgroud)

删除后的“。*” RNConstant。还要在开始时删除静态词。

<%@ page import="id.co.telkom.common.RNConstant" %>. 
Run Code Online (Sandbox Code Playgroud)

要调用HELLO_WORLD常量,请使用

<p>${RNConstant.HELLO_WORLD}</p> <p>${RNConstant.HELLO_WORLD}</p>
Run Code Online (Sandbox Code Playgroud)