我正在尝试JSF框架。我是初学者。所以我从一个简单的tutorial开始。这是代码:
<h:form id="form1" prependId="false">
<h:outputScript name="jsf.js" library="javax.faces" target="head" />
<h:inputText value="#{user.name}" id="name"/>
<h:inputSecret value="#{user.password}" id="password"/>
<h:outputText value="#{user.greeting}" id="out"/>
<br/>
<h:commandButton value="Login" type="button" onclick="jsf.ajax.request(this, event, {execute: 'name password', render: 'out'}); return false;" />
</h:form>
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "user")
@RequestScoped
public class UserBean {
private String name = "";
private String password;
public String getName() { return name; }
public void setName(String newValue) { name = newValue; }
public String getPassword() { return password; }
public void setPassword(String newValue) { password = newValue; }
public String getGreeting() {
if(name.length()==0) {
return "Inserisci nickname";
} else {
return "Benvenuto "+name;
}
}
}
在“少词”中(当我点击按钮时):
1 - 感谢execute: 'name password
,我使用异步调用调用setName
和setPassword
(JavaBean方法);
2 - 感谢render: 'out'
我致电getGreeting
因此,execute
将翻译为SET
,将render
翻译为GET
。
我想知道的是,如果我完全理解这个过程。
因为我有一个误解:如果我从客户端扫描traffik到服务器,我看到(通过ajax调用)它从客户端发送到form1,名称和密码(并且,作为MAGIC,名称和密码有得到了我插入的价值。)
那怎么可能呢?
感谢所有人!
答案 0 :(得分:1)
这不是魔术。这很正常。这些值在webbrowser中输入。 JS / Ajax可以访问这些值。 JS / Ajax将发送这些值。服务器端/ JSF如何知道新输入的值?