2017-07-31 88 views
0

我正在從Struts 1.x遷移到Struts 2.x,並在textarea值中分配Scriptlet時遇到問題。Struts 1.x到Struts 2.x Scriptlet在s:textarea字段中的遷移問題

下面的代碼被寫在Struts的1.x的下面:

<html:textarea name="shareFeedbackForm" style="height:50px;" 
           property="checkAllRemarks(${shrFeedbackHelperForm.groupId})" rows="1" cols="20" 
value = '<%=(String)checkedMap.get(Long.parseLong((String)session.getAttribute("gId"))) %>' styleId="${shrFeedbackHelperForm.groupId}" onkeydown="limitRemarksText(this,500);" onkeyup="limitRemarksText(this,500);"></html:textarea> 

我試圖重新寫Struts中2.x的表達是相同的:

<s:textarea style="height:50px;" 
name="webform.checkAllRemarks(%{#attr.shrFeedbackHelperForm.groupId})" rows="1" cols="20" value = '<%=(String)checkedMap.get(Long.parseLong((String)session.getAttribute("gId"))) %>' id="%{#attr.shrFeedbackHelperForm.groupId}" onkeydown="limitRemarksText(this,500);" onkeyup="limitRemarksText(this,500);"></s:textarea> 

但,我得到的頁面中的錯誤屬性不允許表達式。在JSP頁面中爲Struts 2.x框架分配scriptlet的正確方法是什麼?

+0

請仔細閱讀[在什麼情況下我想補充「緊急」或其他類似短語到我的問題,以獲得更快的答案?](/ meta.stackoverflow.com/q/326569) - 總結是,這不是一個理想的方式來解決志願者,並可能適得其反答案。請不要將這添加到您的問題。 – halfer

回答

2

您可以在Struts 2中添加的Scriptlet如下

<% 
String str=request.getAttribute("tDate").toString(); 
%> 

<s:textfield value=<%=str %> name="toDate" id="toDate" /> 

請嘗試以下代碼

<s:textarea style="height:50px;" 
name="webform.checkAllRemarks(%{#attr.shrFeedbackHelperForm.groupId})" 
rows="1" cols="20" value = '<%=checkedMap.get(Long.parseLong(session.getAttribute("gId"))).toString() %>' id="%{#attr.shrFeedbackHelperForm.groupId}" 
onkeydown="limitRemarksText(this,500);" onkeyup="limitRemarksText(this,500);"></s:textarea> 
+0

感謝Pawan。在添加值表達式後,我收到了同樣的問題,如下所示:value ='<%= checkedMap.get(Long.parseLong(session.getAttribute(「gId」)。toString()))%>' –

+0

.parseLong()在這裏? –

+0

因爲checkedMap是Map數據類型,其中Key爲Long,Value爲String。 –