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>我在我的LoginBean.doAction方法上使用了null和password方法,它为user和password属性打印null。
我做错了什么吗?
发布于 2015-01-08 14:42:52
根据注释,您根据旧的xmlns:jsf主机在URI http://java.sun.com/jsf上声明了XML命名空间java.sun.com。
这在旧的Mojarra版本中有一个bug。新的JSF2.2特定特性(如<f:viewAction>和"HTML5友好标记“)最初在URI中的旧java.sun.com主机的java.sun.com名称空间中不可用,但仅在xmlns.jcp.org主机上可用。这一点在Mojarra 2.2.1-2.2.2中得到了修正。
当您在Java 7上时,您应该真正地放弃java.sun.com名称空间URI中的xmlns.jcp.org主机,而使用xmlns.jcp.org。
<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">尽管如此,这种错误的发生也表明您使用的是一个相当老的Mojarra版本。升级它是明智的。它现在已经是2.2.9 (这反过来又有一个令人尴尬的错误,即类文件中没有包含行号,因此您无法在IDE的调试器中逐步遍历源代码,如果这是强制性的,最好选择2.2.8;这将在2.1.10中得到修正)。
https://stackoverflow.com/questions/27840318
复制相似问题