2016-11-30 22 views
-2

我有下面的代碼片段如何找到丟失的參數或錯誤的PARAM [沒有結果的行動定義,並導致輸入]在Struts2

從XML文件

<action name="list-process-solution" class="actions.ProcessSolutionAction" method="listProcessSolutions"> 
    <interceptor-ref name="store"> 
     <param name="operationMode">RETRIEVE</param> 
    </interceptor-ref> 
    <interceptor-ref name="defaultStack"/> 
    <result name="success">process_solution_list.jsp</result> 
    <result name="input">process_solution_list.jsp</result> 
    <result name="error">Error.jsp</result> 
    <result name="login">Login.jsp</result> 
</action> 

<action name="delete-process-solution" class="actions.ProcessSolutionAction" method="crudProcessSolution"> 
    <interceptor-ref name="store"> 
     <param name="operationMode">STORE</param> 
    </interceptor-ref> 
    <interceptor-ref name="defaultStack"/> 
    <result name="success" type="redirectAction"> 
     <param name="actionName">list-process-solution</param> 
     <param name="nsec">${nsec}</param> 
    </result> 
    <result name="error">Error.jsp</result> 
    <result name="login">Login.jsp</result> 
</action> 

刪除我重定向後列表頁(再次同頁)

我得到的結果input不知道我錯了。

我已經完成了這個鏈接刪除

<s:url var="varDeletePS" action="delete-process-solution"> 
    <s:param name="nsec"> 
     <s:property value="nsec"/> 
    </s:param> 
    <s:param name="processId"> 
     <s:property value="processId"/> 
    </s:param> 
    <s:param name="opType"> 
     <s:property value="2" /> 
    </s:param> 
</s:url> 
<s:a href="%{varDeletePS}" id="id-delete-PS-link" cssClass="class-delete"> 
    Delete 
</s:a> 

在行動,我有這些領域與getter和setter

private ProcessSolution processSolution; 
private short opType; 
private String nsec; 

型號ProcessSolution請參閱本link

我的問題是

如何處理結果名稱input在這裏?我不知道哪個參數錯誤?

更新: -

如何繼續redirectAction後同樣的要求,所以我有我的請求參數?

如何確定哪些領域有錯誤?

更新2:

delete-process-solution正常執行,但對結果成功,並redirectActionlist-process-solution,我得到的結果輸入,如果你有返回

+0

對於輸入結果,您沒有'redirectAction'。在'input'結果頁中使用''和/或''標籤。您也可以啓用devMode。 –

+0

@AleksandrM,我沒有做任何輸入驗證,順便說一句有沒有什麼辦法來找到哪個領域有問題的設置(在我的行動類設置)..? –

+0

PLZ檢查更新2 –

回答

0

"input"結果驗證錯誤。前綴創建在行動類的每個動作的驗證方法和input結果添加到操作配置。

<result name="input">Login.jsp</result> 

你可能有導致INPUT驗證錯誤,但不執行的行動,並沒有設置消息。如果要防止驗證您可以配置動作行動排除的方法,從驗證攔截器或者使用上面的解決方案。

至於validation攔截實現的方法過濾器攔截器,你可以在struts.xml做到這一點。或者只需在該方法上添加@SkipValidation註釋。

@SkipValidation 
public String crudProcessSolution(){//used this method for delete 

//<action name="delete-process-solution" class="actions.ProcessSolutionAction" method="crudProcessSolution"> 
+0

是的,我知道結果名稱'輸入'返回,但如何找到**參數**我有問題..? ty for reply –

+0

我已經在我的xml中有這行了'' process_solution_list.jsp' –

+0

'參數與發送給動作的參數是一樣的,您將它填充到動作中並且可用於來自值棧的JSP。 –

相關問題