|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 内の processreq - 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 内の processActionFormreq - 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 内の processPopulatereq - HTTPリクエストres - HTTPレスポンスform - アクションフォームmapping - アクションマッピング
javax.servlet.ServletException - サーブレット例外
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||