【问题标题】:Struts DynaValidatorActionForm is not populating sting variables with single quote(')Struts DynaValidatorActionForm 没有使用单引号(')填充 sting 变量
【发布时间】:2014-05-13 11:48:37
【问题描述】:

我有一个带有下拉列表的 jsp 页面,以便用户可以从下拉列表中选择一个值。

我正在使用DynaValidatorActionForm。 某些值包含单引号,例如(Java)。当我从服务器端收到值时,单引号不会填充到表单中,而是返回(Javas)。有人可以帮助我确定这个问题吗?对于这种情况,我必须处理什么?

<form-bean name="studentForm" type="org.apache.struts.validator.DynaValidatorActionForm">
   <form-property name="name" type="java.lang.String" />
   <form-property name="language" type="java.lang.String" />
</form-bean>
<action path="/hello" name="studentForm" type="com.msn.java.StudentAction" scope="session" validate="false"
            parameter="_" >
            <forward name="success" path="/jsps/hello.jsp" />
            <forward name="failure" path="/jsps/failure.jsp" />
</action>

Java 类

public ActionForward hello(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)  throws Exception
    {    
String language=(String)((DynaActionForm) form).get("language");    
}

【问题讨论】:

  • 如何显示这些值?如果您将 JavaScript 与来自服务器的数据一起使用,您可能需要确保对服务器数据进行 JS 转义。

标签: struts struts-1 struts-config struts-validation


【解决方案1】:

特殊字符(, '') 不会像字面那样显示,而是被浏览器解释为开始和结束标记。

html中有5个特殊字符需要转义:

>  - &lt;
<  - &gt;
&  - &amp;
'  - &#039;
'' - &#034;

同样,你需要转义你的特殊字符'
这个Link 很好地解释了如何做到这一点

【讨论】:

  • 只有当它们出现在实际需要转义的上下文中时才需要转义,例如,如果您的 JSP 模板正在发出 JS 并且您使用引号嵌入服务器数据,则 可能 需要逃避它。相反,如果您只是将带引号的字符串转储到 HTML 中,则不需要引号转义。
  • 谢谢大家,我得到了解决方案
猜你喜欢
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
相关资源
最近更新 更多