[英]Struts2 submit tags
struts2的新手,遇到了一個問題,需要澄清。 希望高手幫我一下
我正在使用標簽編寫初學者的struts程序,我在使用標簽前綴's'。我創建了JSP頁面,您可以在其中上傳文件,我有邏輯根據我顯示的輸入來檢查文件是否存在或是否為null因此。 當沒有文件上傳時,我將用戶放置在帶有錯誤MSG的retry.jsp
頁面的用戶中:“您尚未選擇任何文件,請選擇一個文件並嘗試上傳”,並且我的按鈕帶有value =“返回上載頁面”以下是我在retry.jsp中使用的邏輯:
<s:form action="Goback" method="post">
<s:submit value="Go back to upload page"/>
</s:form>
因此,想知道是否有任何方法可以不使用表單而僅通過按鈕來調用“ Goback”操作。
您可以使用錨點( <s:a>
)或觸發javascript函數的按鈕來進行POST或GET,而無需使用<form>
。
順便說一句,在您的情況下,我會退后一步,重新思考一下邏輯:
您可以在Struts2驗證中放入您的要求(必須上傳文件),以便在沒有文件的情況下過帳表單時,它將從ValidationInterceptor返回INPUT
結果,而不是到達Action(並在執行完之后返回SUCCESS
方法),返回到同一頁(如果需要,則返回另一頁,但通常不需要),並通過自動填充的fieldError
通知錯誤。
您可以使用XML,Annotations或validate()
方法中的純Java來實現。
遵循示例(未指定結果時,使用SUCCESS):
在struts.xml
<action name="SourceAction" class="xxx.yyy.SourceAction">
<result>source.jsp</result>
</action>
<action name="TargetAction" class="xxx.yyy.TargetAction">
<result>target.jsp</result>
<result name="input">source.jsp</result>
</action>
源動作
public class SourceAction extends ActionSupport
public String execute(){
return SUCCESS;
}
}
源JSP
<s:form action="targetAction" enctype="multipart/form-data" />
<s:file name="file" />
<s:fielderror fieldName="file" />
<s:submit value="Start the upload" />
</s:form>
目標行動
public class TargetAction extends ActionSupport implements Validateable{
private File file;
private String fileContentType;
private String fileFileName;
/* Getters and setters */
public String execute() {
return SUCCESS;
}
public void validate() {
if (file==null){
addFieldError("file","File is mandatory !! Please Retry");
}
}
/* when fieldErrors are added, INPUT result will be returned */
}
目標JSP
File <s:property value="fileFileName"/> successfully loaded.
您需要使用默認的InterceptorStack或確保至少具有Params,Upload,Workflow,Parameters,Validate Interceptor。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.