2014-04-08 78 views
0

我有以下的在我的項目的JSP頁面的代碼,Struts標籤不會允許腳本在標籤的屬性

<%@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..>標籤由同一執行容器, 但爲什麼第一個產生的結果是「你好」,後來沒有給出任何結果。

回答

0

每一件事情你都沒有給第二種情況下的標籤。

您的代碼

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

將其更改爲

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

基本上,我們使用以下語法嘗試這種

<s:property value="test2"/> 
+1

我已經給出了正確的標籤標籤,它是一個Struts 2標籤。 – reddy

+0

我可以知道你爲什麼要混合使用嗎?爲什麼你不能在第二種情況下使用JSTL標籤? – mahesh

+0

我可以在那裏使用JSTL標籤,但是我的疑問是我們在標籤中使用了表達式語言。 – reddy

0

不能嵌套小腳本,也沒有其他顯示支柱變量Struts標籤內部的Struts標籤。

但是你可以打開的標籤,並把它放在中間:

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

爲什麼我們無法將scriptlet嵌套在struts標籤中,而我們可以將scriptlet嵌套在JSTL標籤中。原因是什麼。 – reddy