2013-07-12 73 views
0

我會用.html() 這樣喜歡一個for循環中的jQuery:jquery .html('<%jsp scriplet%>');

.html('<select property="doctype" name="doctype"><%for (String number : list) 
{%>'<option value="'<%=number%>'>'<%out.println(number); %>'</option>'<% } %>'</select>'); 

在Java對,它使用的java.util.ArrayList<String>一個對象的每個迴路列表。

這裏的.html();函數會在我們點擊添加按鈕時調用。 在這裏我的問題是有可能在jquery的.html()中編寫jsp scriplet代碼。

+0

是的,這可能是因爲它在服務器進行評估 –

回答

0
function will call when we click on add button. 

不,你不能。

Jsp是編譯時間。

在客戶端播放java腳本,在服務器端播放jsp。

0

jsp,jsf和其他種類的java web技術都在服務器端渲染。由於jquery是客戶端技術,這是不可能的。

相反,你可以通過jQuery進行ajax調用並更新html。

0

您不能讓客戶端在腳本中執行Java。幸運的是,你想要做的事很常見。

不要試圖在scriptlet或jsp中動態生成JavaScript。錯誤很容易,最終導致格式錯誤的JavaScript。

相反,使用.jsp來吐出HTML。然後使用靜態JavaScript來獲取該HTML並將其放在DOM中的所需位置。

例如,你的JSP文件可能是這個樣子:

<div id="destination">The select element will be added to this div.</div> 

<select id="my-select" property="doctype" name="doctype"> 
<c:forEach items="${list}" var="number"> 
    <option value="${number}">${number}</option> 
</c:forEach> 
</select> 

<script> 
    $('#destination').append($('#my-select')); 
</script>