Я очень новичок в JSF и пытаюсь заставить его работать в течение последнего часа или около того.Исключение стека JSF или проблема с управляемым bean-компонентом
Эта примерная программа, над которой я работаю, должна отображать на ней веб-страницу с несколькими различными формами. Он делает это отлично (как в нем, по крайней мере, работает, я действительно не знаю, насколько корректен синтаксис), и теперь я реализовал некоторые функции в форме с помощью управляемого компонента. Цель состоит в том, чтобы страница отображала то, что пользователь вводил ниже, чтобы показать, что она прошла, но похоже, что есть какая-то проблема * * config.xml, которую я не могу понять, потому что проект, который я создал в netbeans не имеет никакого файла 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>
Registration.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>";
}
}
}
Ваша кнопка не имеет ни действия, ни ActionListener. Я думаю, вам придется привязать метод для запуска, когда пользователь нажимает кнопку. –