我是 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 属性来调用另一个方法。