我遇到了一個場景,如果允許編輯項目的表單有一個空字段,則不會調用Struts動作。該頁面通過freeMarker模板進行自定義。調用到達攔截器併成功傳遞,然後在調用操作方法之前被放棄。正因爲如此,我沒有看到任何錯誤消息來弄清楚什麼是錯誤的。 如果該字段不爲空,則該操作會通過,並且該項目會更新。Struts 2沒有被調用的動作
這是我的攔截器的Struts配置,它似乎很好。
<interceptors>
<interceptor name="loginInterceptor" class="login.interceptor.LoginInterceptor" />
<interceptor-stack name="appStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="loginInterceptor"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="appStack" />
而且這是在struts.xml中的作用
<action name="upDate" method="upDate" class="com.coll.Item">
<result name="success">jsp/item.jsp</result>
<result name="input">jsp/item.jsp</result>
</action>
在item.ftl領域看起來像這樣
<tr>
<td>Prior Order Number</td>
<td><@s.textfield name="item.prevOrdNum" id="prevOrdNum" theme="simple"/></td>
</tr>
另一個令人費解的因素是因爲這是一個小的內部應用程序它沒有更新多年,但這個問題幾個星期前就開始了。如果我在網頁中完全刪除該字段,或者如果我在數據庫中爲該字段添加值,則在加載時它不會爲空 - 更新會通過。我會很感激任何想法,可以解釋發生了什麼。
你給出的代碼是否定的足以給你想法,你只能猜測它,永遠不會解決。 –