Java 从自定义标记库获取表单字段
我已经编写了一个可重用的定制taglib,现在需要从taglib类中获取表单字段名。目前我将它们作为csv参数传递; 表单可以位于页面中定义自定义标记库的任何位置(也可以是包含jsp) 例如Java 从自定义标记库获取表单字段,java,jsp,servlets,jsp-tags,taglib,Java,Jsp,Servlets,Jsp Tags,Taglib,我已经编写了一个可重用的定制taglib,现在需要从taglib类中获取表单字段名。目前我将它们作为csv参数传递; 表单可以位于页面中定义自定义标记库的任何位置(也可以是包含jsp) 例如 <custom:myTagLib formFields="fileda,fieldb,fieldc"/> <form ...id="formA"> <input type="text" name="fielda"/> <input type="hidden"
<custom:myTagLib formFields="fileda,fieldb,fieldc"/>
<form ...id="formA">
<input type="text" name="fielda"/>
<input type="hidden" name="fieldb"/>
<input type="text" name="fieldc"/>
</form>
当您有一个包含太多字段的表单时,csv会变得太大,并且容易出现错误/开发人员缺少表单字段等
要求或拥有的好处:
在myTagLib中:
List<String> formElements = getMeAllFormElements("formA")
List formElements=getMeAllFormElements(“formA”)
有人做过这种事吗?您可能正在使用WebContainerAPI,但我正在寻找一个通用的解决方案
更新
Response对象将具有CoyoteResponse(如果对其他容器使用tomcat或类似的东西),它将获得html呈现的输出(我们可以使用jsoup等来解析元素)。但是再次使用它会使代码与您的容器紧密耦合!所以让这个问题保持原样吧 您是否需要jsp中的属性名称来呈现输出?您是否适合通过javascript将表单的属性迭代传递给浏览器?@LeosLiterak-在加载页面之前呈现标记库。所以图片中的JS超出了范围。我需要在呈现页面时获取表单字段。我知道这不太可能,但只是检查一下。我知道,但我只是检查一下你是否真的需要它。我只能想象,若表单定义是一个特殊的标记,那个么您就能够提取它。与JSF页面模型类似。没有js根本不起作用。我需要taglib中的表单元素名,我的意思是我应该能够在运行时获取它们。我提出的解决方案是解析物理jsp文件。我会尝试定义我的自定义表单/输入标记,它们的处理程序会将HTML存储输入id呈现到存储为页面属性的一些映射中。然后您的标记可以从这个共享页面属性中提取它。