Struts标签不允许标签属性中的Scriptlet

时间:2014-04-08 06:18:07

标签: java jsp struts2

我在项目的JSP页面中有以下代码,

<%@taglib uri="/struts-tags" prefix="s" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<div id="div1"></div>
<div id="div2"></div>
<% String var="hello"; %>         
<c:set var="test1" value="<%= var %>"/>
<s:set var="test2" value=" <%=var%>" />
<script>
 document.getElementById("div1").innerHTML="${test1}"; //hello
 document.getElementById("div2").innerHTML="${test2}"; //nothing is displayed.
</script>

我怀疑<c:set..>标记和<s:set..>标记是否由同一个容器执行,  但为什么第一个产生结果为&#34;你好&#34;以后不会给出任何结果。

2 个答案:

答案 0 :(得分:0)

一切都很好。在第二种情况下,你没有正确地给出标签。

您的代码

<s:set var="test2" value=" <%=var%>" />

将其更改为

<c:set var="test2" value=" <%=var%>" />

基本上我们使用以下语法显示struts变量试试这个

<s:property   value="test2"/>

答案 1 :(得分:0)

您无法在Struts标记内嵌套Scriptlet或其他Struts标记。

但是你可以打开标签并把它放在中间:

<s:set var="test2" >
    <%=var%>
</s:set>