Java 从另一个自定义JSP标记内部调用一个自定义JSP标记的最佳方法?

Java 从另一个自定义JSP标记内部调用一个自定义JSP标记的最佳方法?,java,html,spring,jsp,Java,Html,Spring,Jsp,我们正在尝试使用在应用程序中实施额外的跨站点脚本保护。在我正在处理的概念验证页面上,我遇到了如何在现有标记中使用e:forHtml标记的问题,在本例中是Spring表单:input标记: 我被告知这应该可以,但当我尝试这一点时,我得到以下运行时错误: org.springframework.beans.NotReadablePropertyException: Invalid property '<e:forHtml value=1 />' of bean class [com.m

我们正在尝试使用在应用程序中实施额外的跨站点脚本保护。在我正在处理的概念验证页面上,我遇到了如何在现有标记中使用e:forHtml标记的问题,在本例中是Spring表单:input标记:

我被告知这应该可以,但当我尝试这一点时,我得到以下运行时错误:

org.springframework.beans.NotReadablePropertyException: 
Invalid property '<e:forHtml value=1 />' of bean class [com.mystuff.MyData]: 
Bean property '<e:forHtml value=1 />' is not readable or has an invalid getter method: 
Does the return type of the getter match the parameter type of the setter?

有可能做到这一点吗,或者我应该用另一种方式重新实现吗?

我相信您可以通过使用变量来实现它:


但这基本上使问题重复了

如果在另一个标记的声明之外使用该标记,该标记是否有效?是否尝试使用path=或path=@t0mppa?是的,注释工作正常。在进一步研究这个问题之后,我认为问题在于path=属性实际上传递的不是一个值,而是将被计算以获得实际值的字段的名称。因此,我不认为有任何可能以这种方式工作。不幸的是,没有-经过进一步的调查,Spring form:input标记实际上需要字符串值myData.items[status.index].quantity,因为它将返回到数据中并使用它来获取特定字段。所以,我不得不用另一种方式。但是非常感谢你的回答!让我直截了当地说,您想通过转义其中的HTML来保护静态字符串mydata.items[status.index].quantity不受跨站点脚本的影响吗?如果我可以问的话,这到底是为了什么?不,字符串通常有一个EL表达式。我的任务是对所有EL表达式进行编码,以防止跨站点脚本编写。该项通常看起来像myData.items[${status.index}].quantity。公平吗?负责对所有EL表达式进行编码以防止跨站点脚本编写,嗯?你是不是一直在质疑这样的建议或者考虑不照字面意思?这里的状态看起来像来自forEach的循环变量,那么它究竟如何保存任何漏洞呢?另外,你在上面说你必须以不同的方式来做这件事,那么你应该把它作为一个答案发布。
org.springframework.beans.NotReadablePropertyException: 
Invalid property '<e:forHtml value=1 />' of bean class [com.mystuff.MyData]: 
Bean property '<e:forHtml value=1 />' is not readable or has an invalid getter method: 
Does the return type of the getter match the parameter type of the setter?