【Primefaces】commandButton/commandLink的一些注意問題
阿新 • • 發佈:2019-01-27
注意問題: commandButton和commandLink需要在<h:form>標籤內使用才有效,預設是ajax提交,可通過ajax=‘false’來設定非ajax提交
<p:growl
id=
"growl"
life
="2000"
/>
<p:panelGrid
columns=
"1"
id
="testPanel">
<p:inputText
value=
"#{testMB.item.type}"></p:inputText
>
<p:inputText
value=
"#{testMB.item.title}"></p:inputText
>
<p:editor
value=
"#{testMB.item.content}"
/>
</p:panelGrid >
<p:commandButton
process=
"@this testPanel"
value
="Submit"
update="growl"
actionListener=
"#{testMB.buttonAction}"
/>
</h:form>
</h:body
>
</html>
/**
*
*/
package com.kb.mb;
import javax.faces.bean.ManagedBean;
import javax.faces.event.ActionEvent;
import com.kb.domain.KnowledgeItem;
import com.kb.service.KBManagementService;
import com.kb.util.SpringContextUtil;
/**
* @author shipengfei
*
*/
@ManagedBean(name="testMB")
public class Test {
private KBManagementService kbService;
private KnowledgeItem item = new KnowledgeItem();
public Test() {
super();
}
public void buttonAction(){
System.out.println("come in...");
System.out.println("value..." + item.getTitle());
kbService = (KBManagementService) SpringContextUtil.getBean("kbManagementService");
kbService.addKBItem(item);
System.out.println("end....");
}
public KnowledgeItem getItem() {
return item;
}
public void setItem(KnowledgeItem item) {
this.item = item;
}
public KBManagementService getKbService() {
return kbService;
}
public void setKbService(KBManagementService kbService) {
this.kbService = kbService;
}
}
- MB中方法引數可以加ActionEvent
actionEvent,也可以不加,都可以
- 頁面中 process的作用是區域性提交,在<h:form>中不寫process的話預設提交整個表單,一般這樣就可以了。若使用process可控制區域性提交,但是要主要先加 @this ,然後再加 子部分的id, 如: process