0

我在想这样的变量只能由 Java 代码设置:

<%
    String viewEditPromotionURL="http://promotion.info";
%>

但我发现它也可以在自定义标签中设置:

<portlet:actionURL name="editPromotion" var="editPromotionURL" />

标签如何设置变量可见<%=...>

我自己能做到吗?例如:

<%
   String variableName = "myvariable";
   String variableValue = "myvalue";
   // secret part to store myvalue into myvariable
%>

<p>Variable = <%= myvariable%></p>

这可能吗?秘密部分要写什么?

4

1 回答 1

1

如果您查看 Jasper(JSP 编译器)的输出,<%= myvariable %>标签将转换为:

javax.servlet.jsp.JspWriter out = pageContext.getOut();
out.print(myvariable);

这意味着myvariable必须在public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)可以看到的地方定义它。您唯一的选择是在 JSP 页面内(如您的第一个代码片段),或者在类级别使用<%! %>. 在<portlet:>示例中,您使用 taglib 添加变量,您可以在此处了解更多信息。

于 2013-04-30T22:28:34.807 回答