クラス ServletWrappingController

実装されたすべてのインターフェース:
AwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareServletContextAwareController

public class ServletWrappingController extends AbstractController implements BeanNameAware, InitializingBean, DisposableBean
内部で管理するサーブレットインスタンスをラップする Spring コントローラーの実装。このようなラップされたサーブレットは、このコントローラーの外では認識されません。そのライフサイクル全体がここでカバーされています ( 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>
導入:
1.1.1
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • ServletWrappingController

      public ServletWrappingController()
  • メソッドの詳細

    • setServletClass

      public void setServletClass(ClassSE<? extends ServletEE> servletClass)
      ラップするサーブレットのクラスを設定します。jakarta.servlet.Servlet を実装する必要があります。
      関連事項:
    • setServletName

      public void setServletName(StringSE servletName)
      ラップするサーブレットの名前を設定します。デフォルトは、このコントローラーの Bean 名です。
    • setInitParameters

      public void setInitParameters(PropertiesSE initParameters)
      サーブレットがラップする init パラメーターを名前と値のペアとして指定します。
    • setBeanName

      public void setBeanName(StringSE name)
      インターフェースからコピーされた説明: BeanNameAware
      この Bean を作成した Bean ファクトリで Bean の名前を設定します。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanNameAwaresetBeanName 
      パラメーター:
      name - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      ラップされたサーブレットインスタンスを初期化します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      例外:
      ExceptionSE - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
      関連事項:
    • handleRequestInternal

      @Nullable protected ModelAndView handleRequestInternal(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
      ラップされたサーブレットインスタンスを呼び出します。
      次で指定:
      クラス AbstractControllerhandleRequestInternal 
      例外:
      ExceptionSE
      関連事項:
    • destroy

      public void destroy()
      ラップされたサーブレットインスタンスを破棄します。
      次で指定:
      インターフェース DisposableBeandestroy 
      関連事項: