如何在Spring中从jsp表达式语言调用java常量变量?
我花了一天的时间寻找正确的解决方案,但是运气不好! 问题是如何使用el${bean.objectName}从jsp调用java常量变量。最佳做法是什么 我想知道这是否可行,我对Spring和jsp还很陌生 常数类:如何在Spring中从jsp表达式语言调用java常量变量?,java,jsp,spring-mvc,weblogic,scriptlet,Java,Jsp,Spring Mvc,Weblogic,Scriptlet,我花了一天的时间寻找正确的解决方案,但是运气不好! 问题是如何使用el${bean.objectName}从jsp调用java常量变量。最佳做法是什么 我想知道这是否可行,我对Spring和jsp还很陌生 常数类: public class RNConstant { public static final String HELLO_WORLD = "Hello World again!"; public static final String DEFAULT_LOCALE =
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";
}
在jsp中使用EL调用的期望值
<p>${RNConstant.HELLO_WORLD}</p>
<p>${RNConstant.HELLO_WORLD}</p>
${RNConstant.HELLO\u WORLD}
我可以用scriptlet实现这一点,如下所示,但如果它在weblogic中运行,我就无法实现这一点。这在ApacheTomcatV7或v8中工作
<%@ page import="static id.co.telkom.common.RNConstant.*" %>
...
...
<%= HELLO_WORLD %>
...
...
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%>
^--------^
home.jsp:2:18:标记“static”上的语法错误,此标记后面应该是标识符
^-------------------------------------^
home.jsp:11:19:HELLO\u无法解析世界
你好,世界!
^--------^
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>
弹簧
1.0.0-BUILD-SNAPSHOT
1.6
3.2.8.1发布
2.0.5.1发布
2.2.1.发布
3.2.3.1发布
1.9.10
1.6.10
1.6.6
Scriplet问题已通过以下代码解决,RNConstant的内容仍然相同
<%@ page import="id.co.telkom.common.RNConstant" %>
...
...
<%= RNConstant.HELLO_WORLD %>
...
...
干杯
Hendry期望在jsp中使用EL调用
<p>${RNConstant.HELLO_WORLD}</p>
<p>${RNConstant.HELLO_WORLD}</p>
如果无法创建getter,请选中import语句
<%@ page import="static id.co.telkom.common.RNConstant.*" %>
呼叫HELLO_WORLD常量使用
<p>${RNConstant.HELLO_WORLD}</p> <p>${RNConstant.HELLO_WORLD}</p>
${RNConstant.HELLO\u WORLD}${RNConstant.HELLO\u WORLD}
hi,但是scriplet在apache tomcat v8服务器中工作。我无法得到getter将是保持import语句简单的原因。删除RNConstant后面的“*”,并删除开头的静态字。要调用HELLO_WORLD常量,请使用${RNConstant.HELLO_WORLD}${RNConstant.HELLO_WORLD}@gujralam hi,这并不能解决问题。错误消失了,但值没有出现。weblogic服务器上没有错误消息log@gujralam这应该作为一个answer@gujralam您好,谢谢,它现在可以工作了,它必须使用scriplet标签打印,您应该将其作为答案来写。我很困惑,您不能使用model.addAttribute(“nameuwishinjsp”,nameofvariableinjava)访问它们吗。我错了吗?@WeareBorg是的,我们可以这样做,但是,我试图实现的是创建一个常量类,该类可以直接从.jsp全局调用files@JordiCastilla编辑,应该使用scriplet标记来调用常量类而不是EL。@AdrianusHendry您的问题是如何使用表达式语言引用常量。给出的答案针对不同的问题,因此不应被接受为答案。