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>ServletForwardingControllerHEADER_CACHE_CONTROL, METHOD_GET, METHOD_HEAD, METHOD_POSTlogger| コンストラクターと説明 |
|---|
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, setSynchronizeOnSessionapplyCacheControl, 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, setVaryByRequestHeadersgetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContextcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setServletClass(ClassSE<? extends ServletEE> servletClass)
javax.servlet.Servlet を実装する必要があります。ServletEEpublic 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 ExceptionSEInitializingBean の afterPropertiesSet ExceptionSE - 設定ミス(必須プロパティの設定の失敗など)が発生した場合、または初期化が失敗した場合。Servlet.init(javax.servlet.ServletConfig)EEprotected ModelAndView handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
public void destroy()
DisposableBean の destroy Servlet.destroy()EE