public class ServletWrappingController extends AbstractController implements BeanNameAware, InitializingBean, DisposableBean
ServletForwardingController
とは対照的に)ライフサイクル全体を取り上げます。Spring のディスパッチインフラストラクチャを介して既存のサーブレットを呼び出す場合、たとえば、Spring HandlerInterceptors をそのリクエストに適用する場合に便利です。
Struts には、サーブレットマッピングを見つけるために web.xml
を解析するという特別な要件があることに注意してください。このコントローラーで DispatcherServlet のサーブレット名を "servletName" として指定する必要があります。そうすることで、Struts は DispatcherServlet のマッピング (ActionServlet を参照するものとみなして) を見つけます。
例 : DispatcherServlet XML コンテキスト。ServletWrappingController によってラップされた Struts ActionServlet に "*.do" を転送します。このようなリクエストはすべて、構成済みの HandlerInterceptor チェーン(OpenSessionInViewInterceptor など)を通過します。Struts の観点からは、すべてが通常どおり機能します。
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="openSessionInViewInterceptor"/> </list> </property> <property name="mappings"> <props> <prop key="*.do">strutsWrappingController</prop> </props> </property> </bean> <bean id="strutsWrappingController" class="org.springframework.web.servlet.mvc.ServletWrappingController"> <property name="servletClass"> <value>org.apache.struts.action.ActionServlet</value> </property> <property name="servletName"> <value>action</value> </property> <property name="initParameters"> <props> <prop key="config">/WEB-INF/struts-config.xml</prop> </props> </property> </bean>
ServletForwardingController
HEADER_CACHE_CONTROL, METHOD_GET, METHOD_HEAD, METHOD_POST
logger
コンストラクターと説明 |
---|
ServletWrappingController() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() ラップされたサーブレットインスタンスを初期化します。 |
void | destroy() ラップされたサーブレットインスタンスを破棄します。 |
protected ModelAndView | handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) ラップされたサーブレットインスタンスを呼び出します。 |
void | setBeanName(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。 |
void | setInitParameters(PropertiesSE initParameters) サーブレットがラップする init パラメーターを名前と値のペアとして指定します。 |
void | setServletClass(ClassSE<? extends ServletEE> servletClass) ラップするサーブレットのクラスを設定します。 |
void | setServletName(StringSE servletName) ラップするサーブレットの名前を設定します。 |
handleRequest, isSynchronizeOnSession, setSynchronizeOnSession
applyCacheControl, applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, checkRequest, getAllowHeader, getCacheControl, getCacheSeconds, getSupportedMethods, getVaryByRequestHeaders, isAlwaysMustRevalidate, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, prepareResponse, preventCaching, setAlwaysMustRevalidate, setCacheControl, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader, setVaryByRequestHeaders
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setServletClass(ClassSE<? extends ServletEE> servletClass)
javax.servlet.Servlet
を実装する必要があります。Servlet
EEpublic void setServletName(StringSE servletName)
public void setInitParameters(PropertiesSE initParameters)
public void setBeanName(StringSE name)
BeanNameAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。
BeanNameAware
の setBeanName
name
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。public void afterPropertiesSet() throws ExceptionSE
InitializingBean
の afterPropertiesSet
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 Servlet.init(javax.servlet.ServletConfig)
EEprotected ModelAndView handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
public void destroy()
DisposableBean
の destroy
Servlet.destroy()
EE