Struts DynaValidatorActionForm не заполняет переменные sting одинарными кавычками (')

У меня есть страница 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");    
}

person Naidu    schedule 13.05.2014    source источник
comment
Как вы показываете значения? Если вы используете JavaScript вместе с данными с сервера, вам может потребоваться убедиться, что вы JS-экранируете данные сервера.   -  person Dave Newton    schedule 13.05.2014


Ответы (1)


Специальные символы (, ‹ > '') не отображаются буквально, а интерпретируются браузером как открывающий и закрывающий теги.

В html есть 5 специальных символов, которые нужно экранировать:

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

Точно так же вам нужно экранировать свой специальный символ '
Этот Ссылка дает хорошее объяснение того, как это сделать.

person Susie    schedule 13.05.2014
comment
Их нужно экранировать только в том случае, если они появляются в контексте, где их действительно нужно экранировать, например, если ваш шаблон JSP выдает JS, а вы вставляете данные сервера с кавычками, вам может понадобиться экранировать Это. И наоборот, если вы просто выгружаете строку в кавычках в HTML, экранирование кавычек не требуется. - person Dave Newton; 13.05.2014
comment
Всем спасибо, решение есть - person Naidu; 15.05.2014