jsp - 使用JSP文档(JSPX)有条件地在元素上设置属性

标签 jsp xhtml webforms jspx

在HTML表单中,可以通过在按钮上定义“ disabled”属性(具有任何值)来禁用按钮:

<button name="btn1" disabled="disabled">Hello</button>


如果要启用按钮,则该属性不应存在,因为没有定义的值可以设置为Disabled属性,否则将使按钮处于启用状态。

当我想在使用JSP文档(jspx)时启用/禁用按钮时,这给我带来了问题。由于JSP文档必须是格式正确的XML文档,因此我看不到有条件地包含此属性的任何方式,因为以下内容不合法:

<button name="btn1" <%= (isDisabled) ? "disabled" : "" %/> >Hello</button>


虽然我可以使用JSTL if标签复制标签两次,以获得预期的效果,但在我的特定情况下,我在按钮上声明了15个以上的属性(很多AJAX的javascript事件处理程序属性),因此复制标签将使JSP很乱。

在不牺牲JSP的可读性的情况下,如何解决这个问题?是否有任何可通过处理输出DOM来向父级添加属性的自定义标签?

最佳答案

我使用具有动态属性的自定义JSP标记。您可以这样使用它:

<util:element elementName="button" name="btn1" disabled="$(isDisabled ? 'disabled' : '')"/>


基本上,此标签的作用是生成一个带有elementName的XML元素,并将所有属性都放入标签中,但跳过空的属性。

标签本身很容易实现,我的实现只有44行。

关于jsp - 使用JSP文档(JSPX)有条件地在元素上设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157005/

相关文章:

vb.net - 使用 OWIN/MSAL 的 WebForms 应用未收到授权码

java - 如何在 jsp 中获取 id 而不是值?

java - 显示其他表中一对一映射字段的错误

javascript - 如何使用 javascript 创建 xhtml 元素

css - 如何应用 ASP.net 下拉列表的禁用样式

asp.net - 更新记录属性后,EF 有时会在 SaveChanges() 上抛出 NullReferenceException

java - 如何使用hibernate注释+ Spring MVC映射两个表(一对多)

JavaServlet : set an instance as an attribute

xpath insidetext 没有任何子节点内容

javascript - 使用jquery和php的评论回复程序?