Ajax validation does not work in portlets.
------------------------------------------
Key: WW-2556
URL: https://issues.apache.org/struts/browse/WW-2556
Project: Struts 2
Issue Type: Bug
Components: Plugin - Portlet, XML Validators
Affects Versions: 2.1.0
Environment: Struts 2.0.1 struts2-portlet-plugin
struts2-dojo-plugin-2.1.0 xwork-2.1.0
Reporter: Vladimir Limansky
Priority: Critical
Consider the following configuration.
1. EditTest.jsp:
<sx:head/>
<s:form action="Test!save" theme="xhtml" id="myFormId" >
<s:textfield name="testProperty" label="test input"></s:textfield>
<s:hidden name="testAction" value=""/>
<sx:submit
validate="true"
ajaxAfterValidation="true"
targets="response"
showLoadingText="false"
label="Submit it!"
formId="myFormId"/>
</s:form>
2. TestAction.java
public class TestAction extends BaseActionSupport {
private String testProperty = null;
@Override
public String render() throws Exception {
return SUCCESS;
}
@Transactional
public String save() {
return NONE;
}
public String getTestProperty() {
return testProperty;
}
public void setTestProperty(String testProperty) {
this.testProperty = testProperty;
}
}
3. TestAction-validation.xml
<validators>
<field name="testProperty">
<field-validator type="requiredstring">
<message key="calendar:TitleIsRequired"/>
</field-validator>
</field>
</validators>
4. struts.xml
<struts>
<include file="struts-default.xml"/>
<include file="struts-portlet-default.xml"/>
<include file="sibutu-default.xml"/>
<package name="calendar" extends="sibutu-default">
<action name="Test"
class="org.sibutu.module.calendar.action.TestAction">
<interceptor-ref name="jsonValidationWorkflowStack"/>
<result>/WEB-INF/jsp/Test.jsp</result>
<result name="input">/WEB-INF/jsp/EditTest.jsp</result>
<result name="none">/WEB-INF/jsp/Test.jsp</result>
</action>
</package>
</struts>
Currently I have the following behavior:
1. The expected error message appears just emmidiately on the page startup, NOT
after submit button had been pushed.
2. When submit button had been pressed error message disappears - even if we
assume that validation fails (the field was left blank with "requiredstring"
validator).
3. http://struts.apache.org/2.x/docs/ajax-validation.html says the following:
"Remember to set struts.enableJSONValidation=true in the request to enable AJAX
validation"
But trying to debug JSONValidationInterceptor I noticed that
struts.enableJSONValidation parameter is null. Where this parameter should be
set? An attempt to put it to struts.properties gives nothing. But even when I
tried to set this parameter manually during debug session, it did not cause the
desired result.
In the struts2-showcase-2.1.0.war struts example validation works pretty fine.
Please let me know whether you need any additional info.
Please
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.