【发布时间】:2017-03-23 22:54:46
【问题描述】:
我遇到了这样一种情况,如果允许编辑项目的表单有一个空字段,则不会调用 Struts 操作。通过 freeMarker 模板自定义的页面。调用到达拦截器并成功通过,然后在调用 action 方法之前被丢弃。因此,我看不到任何错误消息来找出问题所在。 如果该字段不为空,则执行该操作并更新项目。
这是我的拦截器的 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>
另一个令人费解的因素是,由于这是一个小型内部应用程序,它已经多年没有更新,但这个问题在几周前就开始了。如果我在网页中完全删除了该字段,或者如果我在数据库中为该字段输入了一个值,以便在加载时它不为空 - 更新将通过。我会很感激任何可以解释发生了什么的想法。
【问题讨论】:
-
你给的代码还不够给你思路,只能猜,永远解决不了。
标签: validation jsp configuration struts2 freemarker