java - 针对缺少输入提供用户友好的错误页面

标签 java spring spring-webflow spring-webflow-2

我的流程具有input required="true"。如果出于某种原因,某人在流程中间添加了书签或共享链接,则由于没有输入,流程会因缺少输入而引发异常,并且我会收到通用的 500 错误页面。有没有办法指定在这种情况下要渲染的 View ?

最佳答案

删除输入 required="true"属性并通过决策状态自行验证输入参数。

例如:

<input name="id"/>

<decision-state id="createOrEdit">
      <if test="requestParameters.id != null" then="editView" else="createView"/>
</decision-state>

<view-state id="createView" view="flows/v/create" model="modelObj"> 
           <!-- contents omitted -->
</view-state>

<view-state id="editView" view="flows/v/edit" model="modelObj"> 
           <!-- contents omitted -->
</view-state>

因此,在上面的示例中,我们收到了一个请求参数“id”。我们验证此参数以查看它是否为空,并根据此空检查决定继续进行哪个 View 状态。

可选,

  1. 在“if”内部,“then”和“else”的值不仅可以引用 View 状态,还可以引用任何其他操作状态,甚至另一个决策状态。

  2. 您可以在 1 个决策状态内添加多个“if 测试”。

关于java - 针对缺少输入提供用户友好的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29671134/

相关文章:

java - 用于排除 javax.faces.resource 被 servlet 过滤器调用的 Url 模式

java - 将 StringBuffer 分成更小的部分

java - 使用 @EnableBatchProcessing 指定 JobRepository 隔离级别

java - Spring:无法 Autowiring 字段 - 找不到类型的 bean

java - spring-config.xml 中第三方库的 Bean

spring - View 状态内 webflow 中的 If & Else 语句

java - SOAP 请求在 Java 上不起作用,但在 PHP 上起作用

java - 正则表达式 - 用逗号(引号中的逗号除外)和换行符(\n 或\r)分割字符串

java - Spring MVC web.xml 的 DispatcherServlet 实例每个 url 映射

spring - Grails中Spring WebFlow的继承和子流