我想知道使用get請求,參數和ajax請求與JSF一起使用的常見方式是什麼?如何使用get請求和參數以及JSF和ajax請求?
我想要實現的是將id參數傳遞給JSF頁面,從數據庫中檢索具有給定參數的實體並在JSF頁面上顯示該實體。然後,我想對實體進行一些更改並將其填充回數據庫(通過ajax)。
我一直堅持這一步,在那裏我想填充更改回數據庫。這是我到目前爲止:我有一個非常簡單的JSF頁面和一個控制器(ManagedBean)。
JSF頁面
<h:body>
<h:form id="myForm">
<p:messages />
<h:panelGrid columns="3">
<h:outputLabel value="#{requestController.id}" />
<p:commandButton value="Update" action="#{requestController.updateEntity}" update="myForm" />
</h:panelGrid>
</h:form>
</h:body>
控制器
@Component("requestController")
@Scope("request")
public class RequestController {
@Value("#{request.getParameter('id')}")
private String id;
private String entity;
@PostConstruct
public void init() {
if(id == null || id.equals("")) {
entity = "Entity not found";
}
else if("1".equals(id)) {
entity = "FirstEntity";
}
else {
entity = "SecondEntity";
}
}
public String getEntity() {
return entity;
}
public void updateEntity() {
entity += "_updated";
}
public String getId() {
return id;
}
}
我可以用一個id參數打開JSF頁面和實體將正確顯示。但是,當我點擊更新按鈕時,控制器將被新實例化並且id參數消失。
在JSF中處理請求參數和Ajax請求的常見方式是什麼?
,我不知道你爲什麼正在使用組件和範圍,我猜他們是春天的註釋..但這不是jsf – Damian 2012-08-14 11:50:49
@Damian當你使用spring來管理你的bean時,你可以使用'@ Component'和'@ Scope'。這完全有效,它的確是JSF。 – flash 2012-08-14 11:53:49
我不這樣做Spring,所以我不知道它在這個特定的構造中扮演了哪個角色,但是在JSF EL中,您將通過'#{param.id}'引用EL中的請求參數,而不是'#{request .getParameter( '編號')}'。至少,這是使用JSF'@ ManagedBean' /'@ ManagedProperty'而不是那些Spring註釋時的工作原理。 – BalusC 2012-08-14 15:05:12