我是java服务器面孔的新手。当我单击提交按钮时,值将传递给bean方法,并且需要清除inputText
字段。但这里是空值或传递,因为java脚本代码首先执行。如何发送这些值,然后清除inputText
字段?
这是我的代码。
的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 lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelets </title>
</h:head>
<h:body >
<h:form id="formdata" >
<b>FirstName </b> <h:inputText id="fname" value="#{hello.fname}"/><br/><br/>
<b>LastName </b> <h:inputText id="lname" value="#{hello.lname}"/> <br/> <br/>
<h:commandButton id="submit" value="Submit" action="#{hello.setStudentName()}" onclick="submitForm()"/>
<h:commandButton id="viewall" value="View All" action="display" />
</h:form>
<script language="JavaScript" type="text/javascript">
function submitForm()
{
var frm = document.getElementsByName('formdata')[0];
frm.reset(); // Reset
}
</script>
</h:body>
Hello.java
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="hello")
@SessionScoped
public class Hello {
String fname="";
String lname="";
ArrayList studentList=new ArrayList();
public void setFname(String f) {
fname=f;
}
public void setLname(String l) {
lname=l;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
public void setStudentName(){
Student s=new Student(fname,lname);
studentList.add(s);
}
public ArrayList getStudentList() {
return studentList;
}
public void setStudentList(){}
}
index.xhtml
获取输入值并分配给bean(Hello.java)。
建议我在提交点击时提交值并清除inputtext
字段的方式。
答案 0 :(得分:1)
你可以在jsf bean中清理:
public void setStudentName(){
Student s=new Student(fname,lname);
studentList.add(s);
fname = "";
lname="";
}