Ваша интуиция верна, вы должны получить "foo@bar.com". В следующем тесте стоек версии 2.0.14 я мог ввести! @ # $ # $ ^ $ &% # $% & В поле from и отобразить его на другой странице без проблем.
Я протестировал приложение 2.0.14 с открытыми костями, с формой, которая принимает строку:
<s:form action="form-view.action" method="GET">
<s:textfield label="email" name="email"/>
<s:submit/>
</s:form>
Базовый класс действий (обратите внимание, что в этой версии со stuts2 вам не нужны сеттеры / геттеры):
package struts2;
import com.opensymphony.xwork2.ActionSupport;
public class FormViewAction extends ActionSupport{
public String email;
}
И очень простая страница отображения, содержащая:
<s:property value="email"/>
Вот файл struts.xml:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package namespace="" name="example" extends="struts-default">
<action name="form-view" class="struts2.FormViewAction">
<result>/form-view.jsp</result>
</action>
</package>
</struts>
Должна быть проблема с конфигурацией ... Вы работаете с maven? Почему вы используете версию 2.0.14 вместо 2.2.1? Кроме того, я снизил рейтинг тестового приложения с 2.2.1 до 2.0.14, и это заняло у меня около 5 минут. Я не думаю, что существуют какие-либо серьезные препятствия для обновления до текущей версии, что даст вам актуальную документацию.
Я запустил это на Glassfish 3.0.1.
Если вы не строите с помощью maven, перечислите jar-файлы в вашей библиотеке, ваши файлы web.xml и struts.xml и, если возможно, минимальный form.jsp, display.jsp и класс Action для воспроизведения проблемы.