基本问题
我在编写自己的自定义 JSP 标记以“包装”spring MVC 表单标记时遇到了一些问题。我已经成功地包装了其他标签,但与 select 和 options 标签分离,这会引发 IllegalStateException。我调试了spring代码,发现options标签寻找祖先选择标签。我正在使用标签文件执行此操作,因此弹簧选择标签实际上位于不同的标签文件中。我想这就是它找不到它的原因。
所以问题是我能做些什么来解决这个问题?
可能的解决方案
我尝试寻找解决方案,但我发现的只是其他人有同样的问题但没有发布解决方案。我确实考虑过在不使用弹簧标签的情况下编写自己的选择和选项标签,但我真的不想复制它免费提供的绑定。我不介意更改为使用 Java 类而不是标记文件,但我之前发现输出不会被评估为 JSP,因此您无法输出另一个 JSP 标记。
这样做的原因
自从第一次提出这个问题以来,我已经考虑了一周,现在我更清楚我想要实现的目标。
- 为了简化我的 JSP 中所需的标记
- 分解出通用代码(例如输入后的表单:错误或从 spring:message 获取翻译)
- 封装外观和感觉(CSS 有很长的路要走,但通常你也需要更改标记)
- 能够构建扩展弹簧标签功能的增强组件(例如,将多选呈现为选项列表或将只读输入显示为文本标签)
我很想听听人们的想法。谢谢