

Spring MVC + Tiles を使用して、WEBアプリを開発しています。  
下記のような設定をした場合、formタグのactionが NULL に設定されてしまいました。  
コンパイルされている、JSPのファイルを確認したところ、きちんとAction名が設定されている状況です。  
また、Spring 3.2.15 + Tiles 2.2.2 で同じように設定した場合は、action名がきちんと設定されました。

ご存知の方がいらっしゃいましたらアドバイスをお願い致します。

Spring Framework：5.0.8.RELEASE  
org.apache.Tiles：3.0.8

**web.xml**

[code]

       <servlet>
         <servlet-name>spring</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
       </servlet>
       <servlet-mapping>
         <servlet-name>spring</servlet-name>
         <url-pattern>*.html</url-pattern>
       </servlet-mapping>
    
[/code]

**bean.xml**

[code]

       <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
         <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
         <property name="redirectHttp10Compatible" value="false" />
       </bean>
       <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
         <property name="definitions">
           <list>
             <value>/WEB-INF/tiles_common.xml</value>
           </list>
         </property>
       </bean>
    
[/code]

**JSP**

[code]

    <form:form modelAttribute="loginModel" action="login.html" autocomplete="off" id="loginModel" method="POST">
    
[/code]

**html**

[code]

    <form id="loginModel" action="null" method="POST" autocomplete="off">
    
[/code]

**login_jsp.java**

[code]

       _jspx_th_form_005fform_005f0.setPageContext(_jspx_page_context);
       _jspx_th_form_005fform_005f0.setParent(null);
       // /WEB-INF/views/login/login.jsp(2,0) name = modelAttribute type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
       _jspx_th_form_005fform_005f0.setModelAttribute("loginModel");
       // /WEB-INF/views/login/login.jsp(2,0) name = action type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
       _jspx_th_form_005fform_005f0.setAction("login.html");
       // /WEB-INF/views/login/login.jsp(2,0) name = autocomplete type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
       _jspx_th_form_005fform_005f0.setAutocomplete("off");
       // /WEB-INF/views/login/login.jsp(2,0) name = id type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
       _jspx_th_form_005fform_005f0.setId("loginModel");
       // /WEB-INF/views/login/login.jsp(2,0) name = method type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
       _jspx_th_form_005fform_005f0.setMethod("POST");
    
[/code]


CC BY-SA 4.0
2018-08-18T09:30:02.490
47600
2018-08-22T11:54:29.973
question
spring mvc
Spring MVC Tilesを使用した場合、action がNULLになる


現象が解決しました。

RequestDataValueProcessorを使用していたのですが、  
processActionメソッドで、nullを設定していました。

同じような事象の回答も見つけました。

<https://stackoverflow.com/questions/44647285/action-name-is-null-in-
spring-4-mvc>


CC BY-SA 4.0
2018-08-22T11:54:29.973
47731
2018-08-22T11:54:29.973
47600
answer