我正在使用Struts 1.x进行Struts 2.x迁移,并在以textarea值分配Scriptlet时遇到问题。
以下代码是在下面的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 :(得分: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>