Penyelesaian:
Sertakan commandName<form:form name="applyForm" commandName="faForm">
Environment:
Spring Framework, Web Flow
Dev info:
APR
error, issue, RnD, notes for my colleagues ... anything related with my job. A good programmer should be a good and fast reader. This log just to cut the costs of my RnD. Nothing personal :)
<!-- Turns on support for mapping requests to Spring MVC @Controller methods
Also registers default Formatters and Validators for use across all @Controllers -->
<mvc:annotation-driven />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources -->
<mvc:resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**" />
<spring:url value="/scripts/dojo-release-1.8.0/dojo/dojo.js" var="dojo_url" />
<spring:url value="/scripts/dojo-release-1.8.0/dijit/themes/claro/claro.css" var="claro_url" />
<spring:url value="/app/resources/spring/Spring.js" var="spring_url" />
<spring:url value="/app/resources/spring/Spring-Dojo.js" var="spring_dojo_url" />
<!-- dojo -->
<script src="${dojo_url}" type="text/javascript" data-dojo-config="isDebug: true,parseOnLoad: true" />
<script src="${spring_url}" type="text/javascript" ><!-- /required for FF3 and Opera --></script>
<script src="${spring_dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
<script type="text/javascript">
require(["dojo/parser", "dijit/MenuBar", "dijit/MenuBarItem", "dijit/PopupMenuBarItem", "dijit/DropDownMenu", "dijit/MenuItem"]);
</script>
Archiq: kena ada ni kot..
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
pastu mapping dia..
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<procedure id="StaffAppraisal.updateKra" parameterClass="map">
<![CDATA[
{
#p_return_val,jdbcType=DECIMAL,mode=OUT# = call appraisal.update_kra(
#p_staff_id,jdbcType=VARCHAR,mode=IN#,
#p_appraisal_seq,jdbcType=VARCHAR,mode=IN#,
#p_session_code,jdbcType=VARCHAR,mode=IN#,
#p_year,jdbcType=VARCHAR,mode=IN#,
#p_kra,jdbcType=VARCHAR,mode=IN#,
#p_errmsg,jdbcType=VARCHAR,mode=OUT#
)
}
]]>
</procedure>
public String sendEmail (String formOwnerId, String emailType, String refCode)
{
String errorMesej = null;
Map<String,String> param = new HashMap<String,String>();
param.put("p_staff_id" , formOwnerId);
param.put("p_email_type", emailType);
param.put("p_ref" , refCode);
param.put("p_errmsg" , refCode);
this.getSqlMapClientTemplate().update("EMAIL.sendEmail", param);
errorMesej = param.get("p_errmsg");
return errorMesej;
}
<button data-dojo-type="dijit.form.Button" type="button" id="btnCancel"
data-dojo-props="onClick:function(){window.location='<c:out value="${cancel_url}" />';}" >Cancel</button>
<form:input path="asEndDate" id="endDate" type="text" data-dojo-type="dijit.form.DateTextBox"
data-dojo-props="onChange: function() {dijit.byId('fromDate').constraints.max = arguments[0];
dijit.byId('asReviewStart').constraints.max = arguments[0];
dijit.byId('asReviewEnd').constraints.max = arguments[0];
}, required: true, constraints:{datePattern: '${datePattern}'}" />