jsp标签中的java变量?

jav*_*y79 6 java jsp

我正在尝试做这样的事情:

<%
    String headerDateFormat = "EEE, d MMM yyyy h:mm:ss aa"; 
%>

<fmt:formatDate pattern="<% out.print( headerDateFormat ); %>" value="${now}" />
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

<fmt:formatDate pattern="${headerDateFormat}" value="${now}" />
Run Code Online (Sandbox Code Playgroud)

和:

<fmt:formatDate pattern="headerDateFormat" value="${now}" />
Run Code Online (Sandbox Code Playgroud)

我显然对JSP很新 - 这有可能吗?理想情况下,我希望能够headerDateFormat通过Rhino 重用javascript - 我认为它可以使用它,但不能在JSP标记中使用.

Bal*_*usC 9

如果你想使用

<fmt:formatDate pattern="${headerDateFormat}" value="${now}" />
Run Code Online (Sandbox Code Playgroud)

(这实际上是正确的方式)

那么你应该将它作为一个属性放在一个页面,请求,会话或应用程序范围中,并将该名称作为键.假设您要将它放在servlet的请求范围中:

String headerDateFormat = "EEE, d MMM yyyy h:mm:ss aa";
request.setAttribute("headerDateFormat", headerDateFormat);
Run Code Online (Sandbox Code Playgroud)

您也可以使用JSTL <c:set>.

<c:set var="headerDateFormat" value="EEE, d MMM yyyy h:mm:ss aa" />
Run Code Online (Sandbox Code Playgroud)

默认情况下,它将在页面范围中设置.

也可以看看:


Bre*_*den 5

在 JSP 中使用附加的 JSTL 标记尝试类似的操作:

<%-- note the single quotes around the value attribute --%>
<c:set var="headerDateFormat" value="'EEE, d MMM yyyy h:mm:ss aa'"/>
<fmt:formatDate pattern="${headerDateFormat}" value="${now}" />
Run Code Online (Sandbox Code Playgroud)

同样在 JSP 中,添加 JavaScript 块来访问 JSP 变量:

<script>
  var format = '<c:out value="${headerDateFormat}"/>';
  // use format as needed in JavaScript
</script>
Run Code Online (Sandbox Code Playgroud)