【问题标题】:Struts 1.x to Struts 2.x Migration issues for Scriptlet in s:textarea field [duplicate]s:textarea 字段中 Scriptlet 的 Struts 1.x 到 Struts 2.x 迁移问题 [重复]
【发布时间】:2017-07-31 07:05:45
【问题描述】:

我正在处理 Struts 1.x 到 Struts 2.x 的迁移,并在将 Scriptlet 分配到 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>

但是,我在属性 value 不允许表达式的页面中遇到错误。在 Struts 2.x 框架的 JSP 页面中分配 scriptlet 的正确方法是什么?

【问题讨论】:

标签: struts2


【解决方案1】:

您可以按如下方式在 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>

【讨论】:

  • 谢谢帕万。添加值表达式后,我遇到了同样的问题: value = ''
  • 你为什么在这里做 Long.parseLong()?
  • 因为checkedMap是Map数据类型,Key为Long,Value为String。
  • 查看我编辑的代码
  • 我尝试了下面的代码,我认为它可以工作:
猜你喜欢
  • 2014-11-09
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多