|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.apache.struts.action.RequestProcessor
org.springframework.web.struts.DelegatingRequestProcessor
jp.terasoluna.fw.web.struts.action.RequestProcessorEx
public class RequestProcessorEx
DelegatingRequestProcessor拡張クラス。
クライアントからのリクエストを捕捉し、URIに応じたアクションの起動などを行う。 org.springframework.web.struts.DelegatingRequestProcessorを継承して、 以下の機能を追加している。
セッションスコープのアクションフォーム論理名が "_"で始まっていた場合、 インスタンスを作成するときに、セッションに格納されている 他のアクションフォームの論理名が、"_" で始まるものはすべて削除される。 これにより、セッションでは最大でも1つのアクションフォー ムだけ生成されることが保証され、セッションスコープの アクションフォーム削除処理を記述しなくても、 実用上問題ないメモリ使用量に押さえることができる。
<struts-config>
<form-beans>
<!-- フォームの先頭に"_"をつける -->
<form-bean name="_sampleForm"
type="jp.terasoluna.fw.web.struts.form.DynaValidatorActionFormEx"
>
<form-property name="companyId" type="java.lang.String" />
・・・
</struts-config>
ビジネスロジック実行結果を反映したアクションフォームから フォームが切り替わっていない場合は、processPopulate()をスキップする。
入力チェックエラーがあった場合は、ポップアップ画面にエラーを 表示させるため、アクションフォームにアクションエラーを保存する。 エラーが発生していないときは、空のアクションエラーをアクション フォームに設定する。
RequestProcessor#process()内で例外がスローされた時、 例外スタックトレースをログに出力する。 ログ出力後、発生した例外はServletExceptionにラップされ、スローされる。
RequestProcessorExを利用するためには、struts-config.xmlの <controller>要素のprocessorClass属性に設定が必要である。
<struts-config>
・・・
<controller processorClass=
"jp.terasoluna.fw.web.struts.RequestProcessorEx"/>
・・・
</struts-config>
フォーム抑止機能の詳細については、ActionExを参照のこと。
ActionEx
,
FormEx
フィールドの概要 | |
---|---|
private static org.apache.commons.logging.Log |
log
ログクラス。 |
static java.lang.String |
SKIP_POPULATE
processPopulate()をスキップするフラグをリクエストに設定するときのキー。 |
クラス org.apache.struts.action.RequestProcessor から継承されたフィールド |
---|
actions, INCLUDE_PATH_INFO, INCLUDE_SERVLET_PATH, moduleConfig, servlet |
コンストラクタの概要 | |
---|---|
RequestProcessorEx()
|
メソッドの概要 | |
---|---|
void |
process(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res)
StrutsのHTTPリクエスト処理を拡張する。 |
protected org.apache.struts.action.ActionForm |
processActionForm(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res,
org.apache.struts.action.ActionMapping mapping)
Strutsのアクションフォーム取得処理を拡張する。 |
protected org.apache.struts.action.ActionForm |
processActionFormEx(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res,
ActionMappingEx mapping)
Strutsのアクションフォーム取得処理を拡張する。 |
protected void |
processPopulate(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res,
org.apache.struts.action.ActionForm form,
org.apache.struts.action.ActionMapping mapping)
Strutsのアクションフォームへのリクエストパラメータ反映処理を拡張する。 |
クラス org.springframework.web.struts.DelegatingRequestProcessor から継承されたメソッド |
---|
determineActionBeanName, getDelegateAction, getWebApplicationContext, init, initWebApplicationContext, processActionCreate |
クラス org.apache.struts.action.RequestProcessor から継承されたメソッド |
---|
destroy, doForward, doInclude, getInternal, getServletContext, internalModuleRelativeForward, internalModuleRelativeInclude, log, log, processActionPerform, processCachedMessages, processContent, processException, processForward, processForwardConfig, processInclude, processLocale, processMapping, processMultipart, processNoCache, processPath, processPreprocess, processRoles, processValidate |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
private static org.apache.commons.logging.Log log
public static final java.lang.String SKIP_POPULATE
コンストラクタの詳細 |
---|
public RequestProcessorEx()
メソッドの詳細 |
---|
public void process(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws java.io.IOException, javax.servlet.ServletException
StrutsのActionServletのprocess()メソッドでスローされた例外は SystemExceptionを含めてこのメソッドでキャッチされる。 そして、例外の内容とセッションIDのハッシュ値がログ出力された後、 ServletExceptionにラップされてスローされる。
org.apache.struts.action.RequestProcessor
内の process
req
- HTTPリクエストres
- HTTPレスポンス
java.io.IOException
- IO例外
javax.servlet.ServletException
- サーブレット例外protected org.apache.struts.action.ActionForm processActionForm(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res, org.apache.struts.action.ActionMapping mapping)
アクションマッピングで指定されたアクションフォーム名が、 "_"で始まってるアクションフォームの場合は、 processActionFormEx()に処理を委譲する。
org.apache.struts.action.RequestProcessor
内の processActionForm
req
- HTTPリクエストres
- HTTPレスポンスmapping
- アクションマッピング
protected org.apache.struts.action.ActionForm processActionFormEx(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res, ActionMappingEx mapping)
アクションマッピングで指定されたアクションフォーム名が、 "_"で始まってるアクションフォームを処理する。
アクションフォームの処理後、 RequestProcessorのprocessPopulate()メソッドを起動する。
req
- HTTPリクエストres
- HTTPレスポンスmapping
- アクションマッピング
protected void processPopulate(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res, org.apache.struts.action.ActionForm form, org.apache.struts.action.ActionMapping mapping) throws javax.servlet.ServletException
ビジネスロジック実行結果を反映したアクションフォームから 切り換わっている場合は、 RequestProcessorのprocessPopulate()メソッドを起動する。
struts-config.xmlのアクションマッピング設定時、 cancelPopulateをtrue にした場合、 processPopulate がキャンセルされる。
org.apache.struts.action.RequestProcessor
内の processPopulate
req
- HTTPリクエストres
- HTTPレスポンスform
- アクションフォームmapping
- アクションマッピング
javax.servlet.ServletException
- サーブレット例外
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |