私はJSFに非常に慣れていないため、これを機能させるために過去1時間ほど試してきました。
私が取り組んでいるこのサンプル プログラムは、いくつかの異なるフォームを含む Web ページを表示することになっています。それはうまくいきます(少なくとも機能するので、構文がどれほど正しいかは本当にわかりません)。今、マネージドBeanを使用してフォームにいくつかの機能を実装しました。目標は、ユーザーが下に入力した内容をページに表示して、それが通過したことを示すことですが、netbeans で作成したプロジェクトが解決しないため、特定できない* *config.xml の問題があるようです。任意の種類の config.xml ファイルがあり、beans.xml ファイルと web.xml ファイルしかありません。beans.xml ファイルに何を (もしあれば) 追加する必要があるのか、自分で新しい xml ファイルを作成する必要があるのか 、それともまったく別のものなのかわかりません。
また、このプログラムを実行すると、GUI 部分が実行され、ボックスに入力したり、ラジオ ボックスをチェックしたりできますが、[登録] ボタンを押しても何も起こりません。
これが私のファイルです。
index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Student Registration Form</title>
</h:head>
<h:body>
<h:form>
<!-- Use h:graphicImage -->
<h3>Student Registration Form
<h:graphicImage name="usIcon.gif" library="image"/>
</h3>
<!-- Use h:panelGrid -->
<h:panelGrid columns="6" style="color:green">
<h:outputLabel value="Last Name"/>
<h:inputText id="lastNameInputText"
value="#{Registration.lastName}"/>
<h:outputLabel value="First Name" />
<h:inputText id="firstNameInputText"
value="#{Registration.firstName}"/>
<h:outputLabel value="MI" />
<h:inputText id="miInputText" size="1"
value="#{Registration.mi}"/>
</h:panelGrid>
<!-- Use radio buttons -->
<h:panelGrid columns="2">
<h:outputLabel>Gender </h:outputLabel>
<h:selectOneRadio id="genderSelectOneRadio"
value="#{Registration.gender}">
<f:selectItem itemValue="Male"
itemLabel="Male"/>
<f:selectItem itemValue="Female"
itemLabel="Female"/>
</h:selectOneRadio>
</h:panelGrid>
<!-- Use combo box and list -->
<h:panelGrid columns="4">
<h:outputLabel value="Major "/>
<h:selectOneMenu id="majorSelectOneMenu"
value="#{Registration.major}">
<f:selectItem itemValue="Computer Science"/>
<f:selectItem itemValue="Mathematics"/>
</h:selectOneMenu>
<h:outputLabel value="Minor "/>
<h:selectManyListbox id="minorSelectManyListbox"
value="#{Registration.minor}">
<f:selectItem itemValue="Computer Science"/>
<f:selectItem itemValue="Mathematics"/>
<f:selectItem itemValue="English"/>
</h:selectManyListbox>
</h:panelGrid>
<!-- Use check boxes -->
<h:panelGrid columns="4">
<h:outputLabel value="Hobby: "/>
<h:selectManyCheckbox id="hobbySelectManyCheckbox"
value="#{Registration.hobby}">
<f:selectItem itemValue="Tennis"/>
<f:selectItem itemValue="Golf"/>
<f:selectItem itemValue="Ping Pong"/>
</h:selectManyCheckbox>
</h:panelGrid>
<!-- Use text area -->
<h:panelGrid columns="1">
<h:outputLabel>Remarks:</h:outputLabel>
<h:inputTextarea id="remarksInputTextarea"
style="width:400px; height:50px;"
value="#{Registration.remarks}"/>
</h:panelGrid>
<!-- Use command button -->
<h:commandButton value="Register" />
<br />
<h:outputText escape="false" style="color:red"
value="#{Registration.response}" />
</h:form>
</h:body>
</html>
登録.java
package jsf2demo;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
@ManagedBean
@javax.faces.bean.RequestScoped
public class Registration {
private String lastName;
private String firstName;
private String mi;
private String gender;
private String major;
private String[] minor;
private String[] hobby;
private String remarks;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getMi() {
return mi;
}
public void setMi(String mi) {
this.mi = mi;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String[] getMinor() {
return minor;
}
public void setMinor(String[] minor) {
this.minor = minor;
}
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getResponse() {
if (lastName == null)
return ""; // Request has not been made
else {
String allMinor = "";
for (String s: minor) {
allMinor += s + " ";
}
String allHobby = "";
for (String s: hobby) {
allHobby += s + " ";
}
return "<p style=\"color:red\">You entered <br />" +
"Last Name: " + lastName + "<br />" +
"First Name: " + firstName + "<br />" +
"MI: " + mi + "<br />" +
"Gender: " + gender + "<br />" +
"Major: " + major + "<br />" +
"Minor: " + allMinor + "<br />" +
"Hobby: " + allHobby + "<br />" +
"Remarks: " + remarks + "</p>";
}
}
}