Struts 1.x到Struts 2.x在s:textarea字段中Scriptlet的迁移问题

时间:2017-07-31 07:05:46

标签: struts2

我正在使用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的正确方法是什么?

1 个答案:

答案 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>