输入值未在托管 bean 中更新
Input values are not updated in managed bean
我的 HTML 页面的字段值没有发送到我的托管 bean。通过调用操作,值为 null
。我的 html 代码是:
<form jsf:id="form">
<fieldset>
<label> <span
class="block input-icon input-icon-right"> <input
type="text" class="span12" placeholder="Usuário"
jsf:id="usr" jsf:value="#{loginBean.user}" />
<i class="icon-user"></i>
</span>
</label> <label> <span
class="block input-icon input-icon-right"> <input
type="password" class="span12" placeholder="Senha"
jsf:id="pwd" jsf:value="#{loginBean.password}" />
<i class="icon-lock"></i>
</span>
</label>
<div class="space"></div>
<div class="clearfix">
<button jsf:action="#{loginBean.doLogin()}" jsf:id="btn"
class="width-35 pull-right btn btn-small btn-primary">
<i class="icon-key"></i> Login
</button>
</div>
<div class="space-4"></div>
</fieldset>
</form>
我被放在 syout
我的 LoginBean.doAction
方法上,它为 user
和 password
属性打印 null
。
我是不是做错了什么?
根据评论,您基于旧 java.sun.com
主机在 URI http://java.sun.com/jsf
上声明了 XML 命名空间 xmlns:jsf
。
这在旧的 Mojarra 版本中有一个错误。 <f:viewAction>
和“HTML5 friendly markup”等新的 JSF 2.2 特定功能最初在 URI 中具有旧 java.sun.com
主机的 XML 名称空间上不可用,但仅在 xmlns.jcp.org
主机。这已在 Mojarra 2.2.1-2.2.2 中修复。
当您使用 Java EE 7 时,您真的应该放弃 XML 名称空间 URI 中的 java.sun.com
主机,而改用 xmlns.jcp.org
。
<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">
也就是说,出现此错误也表明您使用的是相当旧的 Mojarra 版本。升级它是明智的。它目前已经是 2.2.9(这反过来有一个尴尬的错误,即行号不包含在 class 文件中,所以你无法在 IDE 的调试器中单步执行源代码,你如果这是强制性的,最好选择 2.2.8;这将在 2.1.10 中修复)。
我的 HTML 页面的字段值没有发送到我的托管 bean。通过调用操作,值为 null
。我的 html 代码是:
<form jsf:id="form">
<fieldset>
<label> <span
class="block input-icon input-icon-right"> <input
type="text" class="span12" placeholder="Usuário"
jsf:id="usr" jsf:value="#{loginBean.user}" />
<i class="icon-user"></i>
</span>
</label> <label> <span
class="block input-icon input-icon-right"> <input
type="password" class="span12" placeholder="Senha"
jsf:id="pwd" jsf:value="#{loginBean.password}" />
<i class="icon-lock"></i>
</span>
</label>
<div class="space"></div>
<div class="clearfix">
<button jsf:action="#{loginBean.doLogin()}" jsf:id="btn"
class="width-35 pull-right btn btn-small btn-primary">
<i class="icon-key"></i> Login
</button>
</div>
<div class="space-4"></div>
</fieldset>
</form>
我被放在 syout
我的 LoginBean.doAction
方法上,它为 user
和 password
属性打印 null
。
我是不是做错了什么?
根据评论,您基于旧 java.sun.com
主机在 URI http://java.sun.com/jsf
上声明了 XML 命名空间 xmlns:jsf
。
这在旧的 Mojarra 版本中有一个错误。 <f:viewAction>
和“HTML5 friendly markup”等新的 JSF 2.2 特定功能最初在 URI 中具有旧 java.sun.com
主机的 XML 名称空间上不可用,但仅在 xmlns.jcp.org
主机。这已在 Mojarra 2.2.1-2.2.2 中修复。
当您使用 Java EE 7 时,您真的应该放弃 XML 名称空间 URI 中的 java.sun.com
主机,而改用 xmlns.jcp.org
。
<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">
也就是说,出现此错误也表明您使用的是相当旧的 Mojarra 版本。升级它是明智的。它目前已经是 2.2.9(这反过来有一个尴尬的错误,即行号不包含在 class 文件中,所以你无法在 IDE 的调试器中单步执行源代码,你如果这是强制性的,最好选择 2.2.8;这将在 2.1.10 中修复)。