【发布时间】:2010-11-24 11:43:46
【问题描述】:
我是 JSF 和 EL 的新手,想知道是否有办法使用 EL 来获取 h:inputText 字段的当前值。是我做错了,还是有可能?
谢谢, -本
【问题讨论】:
我是 JSF 和 EL 的新手,想知道是否有办法使用 EL 来获取 h:inputText 字段的当前值。是我做错了,还是有可能?
谢谢, -本
【问题讨论】:
我真的不明白你在寻找什么......
使用此代码:
<h:form id="myForm">
<h:inputText id="myInput" value="#{myBean.myValue}"/>
在创建 HTML 页面时,输入字段的值将等于 bean myBean 的 myValue 属性的值。
如果用户更改了值,JSF会在提交表单时自动更新myBean.myValue的值。
如果您需要在客户端获取输入的值,即使用Javascript,您需要执行以下代码:
<script type="text/javascript">
function getInputTextValue() {
var valueOfInput = document.getElementById("myForm:myInput").value;
}
</script>
请注意,您必须在 ID 前面加上包含输入的表单 ID ("**myForm:**myInput")。
【讨论】:
(根据您的评论)如果您想在服务器端验证它,那么您应该查看像 Richfaces 这样的 Ajax 库。
然后您可以轻松地将 ajax 调用添加到您的输入字段
<h:inputText id="myInput" value="#{myBean.myValue}">
<a4j:support event="onchange" ajaxSingle="true"/>
</h:inputText>
当您更改文本时,Ajax 调用将在服务器端更新您的模型。如果你有一个验证器,那么你可以将它添加到 inputText 标签或使用支持标签上的 action 属性来调用另一个方法。
【讨论】: