0

我的要求是我有一个隐藏的表单,我从中调用一个句柄方法。除了句柄方法,我将成功和错误 url 设置为隐藏值。

    <dsp:form action="blank.jsp" method="post" formid="UNIQUE_FORM_ID">
    <dsp:input bean="FormHandler.commitOrder" type="hidden" value="submit" />
    <dsp:input bean="FormHandler.commitOrderSuccessURL" type="hidden" value="SOME_VALUE" />  
    <dsp:input bean="FormHandler.commitOrderNotReadyURL" type="hidden" value="SOME_VALUE" />  
    </dsp:form>  

我需要在调用句柄方法之前设置successurland 。errorUrl

我尝试给予优先权,但仍然无法正常工作。

谢谢,尼努

4

1 回答 1

0

这是我测试和工作的代码片段。

<dsp:importbean bean="/atg/commerce/order/purchase/CommitOrderFormHandler"/>

<dsp:form action="blank.jsp" method="post" formid="commitForm">
    <dsp:input bean="CommitOrderFormHandler.commitOrderSuccessURL" type="hidden" value="success.jsp" />  
    <dsp:input bean="CommitOrderFormHandler.commitOrderErrorURL" type="hidden" value="failure.jsp" />  
    <dsp:input id="submitFormInput" bean="CommitOrderFormHandler.commitOrder" type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"/> 
</dsp:form>

<%-- 
    If your form (including the submit button) is hidden,
    then I assume that elsewhere on the page, you have some
    other way to trigger the submission of your hidden form.  
 --%>
<button type="button" onclick="document.getElementById('submitFormInput').click()">Click Me!</button>

这里有几个关键点:

  1. 确保导入您正在使用的表单处理程序。
  2. 确保您使用的表单处理程序有一个实例变量和一个公共 getter/setter,用于您尝试设置的每个成功/错误 url。
  3. 你应该有一个<dsp:input>type="submit" 和bean="<form handler method you are trying to call>"。如果这必须隐藏,你可以使用 CSS 隐藏它。
  4. 在我的代码示例中,我包含了一个 HTML<button>标记来提交表单,但您可以将其替换为您的提交方法。
于 2015-03-27T23:36:23.167 回答