【问题标题】:Dynamic making input-tag readonly动态使输入标签只读
【发布时间】:2016-09-28 16:42:49
【问题描述】:

此时我在 Tomee (v1.7.4) 中使用 Tomahawk20 (v1.1.14) 作为表单中的输入字段:

<t:inputText id="email" value="#{bean.klant.email}" maxlength="255" size="50" readonly="#{bean.aktie.readonly}" />

#{bean.aktie.readonly} 返回 true 或 false。 Tomahawk 负责设置 readonly 属性。

现在我想更改为 bootstrap.js。在这里我可以使用普通的&lt;input /&gt; 标签,但是只读的设置给我带来了麻烦。我搜索了互联网,但找不到解决方案。在一个站点上,他们建议使用三元测试 (${bean.aktie.readonly?'readonly':''}):

<input id="email" type="text" class="form-control" value="#{bean.klant.email}" maxlength="255" size="50" ${bean.aktie.readonly?'readonly="readonly":''} />

然而,这给了我错误:

javax.servlet.ServletException: Error Parsing /viewMetadata/bean/detail.xhtml: Error Traced[line: 99] 元素类型“input”必须后跟属性规范“>”或“/>”。

实现这一目标的最简单方法是什么?

【问题讨论】:

  • 您的输入标签在很多方面都是无效的...在互联网上搜索类似的错误...下面的答案也是正确的。除非您打算完全放弃 jsf,否则它永远不会起作用。但如果你不这样做,请尝试 jsf passtrough(对 html5 友好的东西)或 bootsfaces

标签: html jsf twitter-bootstrap-3 jstl apache-tomee


【解决方案1】:

&lt;input&gt; 不是 JSF 标记,这就是问题所在。你必须使用h:inputTexthttp://www.tutorialspoint.com/jsf/jsf_inputtext_tag.htm

您还遗漏了一些引文。试试这个:

<h:inputText id="email" styleClass ="form-control" value="#{bean.klant.email}" maxlength="255" size="50" disabled="${bean.aktie.readonly}" /> 

顺便说一句,如果您对将 Bootstrap 与 JSF 结合使用感兴趣,请查看:http://www.bootsfaces.net 这将使编写看起来很棒的 BootStrap 页面变得异常简单。

编辑

请务必查看第一条评论,您可能会以不同的方式进行此操作

【讨论】:

  • 不,您可以使用纯文本输入...阅读 google 在此处显示的链接:google.com/search?q=html5+friendly+jsf+tags。尤其是这样做,因此可以与 bootstrap 或其他 javascript ui 框架结合使用
  • 作为一个快速解决方案,我将使用styleClass 属性。愚蠢的我没有在文档中看到这一点。稍后我将研究 bootsfaces。 @Kukeltje 感谢谷歌搜索提示。总是很难指定您真正搜索的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多