私は新しいjsfです。私はアップロードされたtxtに従ってコンボボックスを動的に埋めます。しかし、ıが選択されたコンボボックスの値を取得したいとき。私はそれを研究し、私のコードを適用しましたが、うまくいきません。選択された文字列は常にnullを返します。OneSelectMenuの値を取得する方法
<p:dataTable id="cellEditingTable" var="message"
value="#{messageTableController.menuList}" paginator="true"
paginatorPosition="bottom" editable="true" editMode="cell">
<f:facet name="header">
PRE_INSTALL
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Value" />
</f:facet>
<h:outputText value="#{message.value}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Assign" />
</f:facet>
<p:selectOneMenu value="#{messageTableController.selected}"
style="width:96%">
<f:selectItem itemLabel="#{message.assign}" itemValue="1" />
<f:selectItem itemLabel="#{message.combo}" itemValue="2" />
</p:selectOneMenu>
</p:column>
</p:dataTable>
<br />
<h:commandButton value="Submit Training"
action="#{messageTableController.submitTraining}">
</h:commandButton>
私のクラス
@ManagedBean
@ViewScoped
@SessionScoped
public class MessageTableController implements Serializable {
private static final long serialVersionUID = 20111020L;
private UploadedFile file;
private File f;
private BufferedReader br;
private String line;
private String[] str;
private String selected = "s";
private List<preList> menuList;
public String getSelected() {
return selected;
}
public void setSelected(String selected) {
this.selected = selected;
}
public List<preList> getMenuList() {
return menuList;
}
public void setKullaniciList(List<preList> menuList) {
this.menuList = menuList;
}
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public void upload() throws IOException {
if (file != null) {
FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
readUploadedFile();
}
}
public void readUploadedFile() throws IOException {
f = new File(file.getFileName());
br = new BufferedReader(new FileReader(f));
menuList = new ArrayList<preList>();
while ((line = br.readLine()) != null) {
if (line.contains("PI")) {
str = line.split("=");
if(str[1].contains("DISABLE")){
menuList.add(new preList(str[0], str[1], "ENABLE"));
}
else if(str[1].contains("ENABLE")){
menuList.add(new preList(str[0], str[1], "DISABLE"));
}
else if(str[1].contains("YES")){
menuList.add(new preList(str[0], str[1], "NO"));
}
else if(str[1].contains("NO")){
menuList.add(new preList(str[0], str[1], "YES"));
}
else{
menuList.add(new preList(str[0], str[1], ""));
}
}
}
br.close();
}
public String submitTraining(){
return "selectedOptions";
}
public class preList {
private String value;
private String assign;
private String combo;
public preList(String value, String assign, String combo) {
this.assign = assign;
this.value = value;
this.combo = combo;
}
//set get methods...
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:outputText value="#{messageTableController.selected}" />
</html>
Output photo私はボタンの空のページが
とコードの最後の部分何を意味するのですか? –
[送信]ボタンをクリックすると、selectedOptions.xhtmlがトリガされ、コードの最後の部分である選択された値が表示されます。 –
'System.out.println(私が見たいもの);を使用して表示を開始します(表示する前に)。 –