Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从自定义标记库获取表单字段_Java_Jsp_Servlets_Jsp Tags_Taglib - Fatal编程技术网

Java 从自定义标记库获取表单字段

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"

我已经编写了一个可重用的定制taglib,现在需要从taglib类中获取表单字段名。目前我将它们作为csv参数传递; 表单可以位于页面中定义自定义标记库的任何位置(也可以是包含jsp)

例如

<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呈现到存储为页面属性的一些映射中。然后您的标记可以从这个共享页面属性中提取它。