【问题标题】:Why JSP doesn't throw error for non-mapped fields in Struts 2为什么 JSP 不会为 Struts 2 中的非映射字段抛出错误
【发布时间】:2018-07-04 10:01:28
【问题描述】:

我的 Struts 2 操作为 ModelDriven。我也在动作本身上定义了一些字段。但是,如果在 JSP 中我使用了既不在 ModelDriven 模型中也不直接用作操作成员字段的错误字段名称,那么我不会收到任何错误,它只会忽略这些字段。

 <s:if test="(method == 'list')">

如果方法既不是ModelDriven 模型字段也不是操作成员字段,则它会简单地忽略此s:if 语句并且不执行此s:if 语句中的指令。
关于如何在 JSP 上为ModelDriven 模型字段或ModelDriven 模型的操作中未映射的字段抛出错误的任何想法?

【问题讨论】:

  • 阅读this 答案。我在徘徊,你为什么在测试中使用圆括号?
  • 括号纯粹是为了跟上java约定。
  • 这是 ognl 语言。见this答案

标签: struts2 mapping runtime-error ognl model-driven


【解决方案1】:

OGNL 表达式可以抛出异常,但它们会在内部被捕获。

OGNL 表达式在此属性中进行评估,就像在许多其他属性中一样 Struts 标签的属性,如果不能解析它返回的值 null。对于if 标记,此值是不可接受的。

但是,如果您知道哪个表达式返回 null,则创建一个 boolean 表达式。


关于如何在 jsp 上抛出错误的任何想法...

java 代码封装在标签实现中。如果标签无法执行,它们会抛出 500 内部服务器错误。您可以编写自定义标签来抛出该错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多