struts2は初めてで、質問に遭遇し、説明が必要です。専門家が私を少し助けてくれることを願っています
タグを使用して初心者のストラットプログラムを作成しています。タグプレフィックス「s」を使用しています。ファイルをアップロードできるJSPページを作成しました。ファイルが存在するかどうか、または表示する入力に基づいてnullかどうかを確認するロジックがあります。それに応じて。ファイルがアップロードされていない場合retry.jsp
、エラーMSGのページのユーザーを配置します:「ファイルを選択していません。ファイルを選択してアップロードしてみてください」とvalue = "アップロードページに戻る"のボタンがあります。私がretry.jspに持っているロジック:
<s:form action="Goback" method="post">
<s:submit value="Go back to upload page"/>
</s:form>
したがって、フォームを使用せずにボタンを使用するだけで「Goback」アクションを呼び出す方法があるかどうかを知りたいと思います。
あなたは使用することができますアンカーを(<s:a>
)または使用せずにPOSTまたはGETを作るためにjavascript関数をトリガーボタン<form>
。
ところで、あなたの場合、私は少し後退してロジックを再考します:
Struts2検証に要件(ファイルをアップロードする必要があります)を入れることができます。これにより、フォームがファイルなしで投稿されるとINPUT
、アクションに到達する(そしてSUCCESS
メソッドの実行後に戻る)代わりに、ValidationInterceptorから結果が返されます。、同じページ(または必要に応じて別のページに戻りますが、通常はそうではありません)に戻り、自動入力されたを介してユーザーにエラーを通知しますfieldError
。
XML、アノテーション、または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、ValidateInterceptorsがあることを確認する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加