我刚刚来自strust2的jsf只是两天了!
当struts自动将请求参数绑定到操作时,有一种机制可以帮助您在使用 ModelDriven approch时特别控制它。在那里你可以实现 acceptableParameterName 方法来控制struts自动设置的内容以及不应该的内容。
任何方式,现在我们都在JSF,我想知道在这里要做什么!
我尝试下面的简单页面
<h:form>
<h:inputText id="name" value="#{helloBean.name1}"></h:inputText>
<h:commandButton value="Welcome Me">
<f:ajax execute="name" render="output" />
</h:commandButton>
<h2><h:outputText id="output" value="#{helloBean.name2}" /></h2>
</h:form>
豆子是:
@ManagedBean
@SessionScoped
public class HelloBean2 implements Serializable {
private static final long serialVersionUID = 1L;
private String name1;
private String name2;
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
}
我试图篡改经过处理的html:
<input id="j_idt41:name" name="j_idt41:name" value="" type="text">
到
<input id="j_idt41:name" name="j_idt41:name2" value="" type="text">
但没有运气,而且名称2未由JSF设定
我的问题是:
这是否意味着JSF知道我试图从用户获取哪些参数并自动阻止其他参数?例如,如果我的 inputText 名称为 name1 ,则JSF会设置 name1 ?
如果没有,我应该如何避免JSF自动绑定不想要的参数?
请考虑我的真正问题是我想使用一个包含大量参数的bean,并且每个视图中只应设置其中一些(某种向导)
我看到In JSF, What is the best way to prevent Form tampering?,但我认为我的问题不同了!