如何在jsf中清除h:inputtext

时间:2015-05-03 19:09:43

标签: javascript jsf

我是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字段的方式。

1 个答案:

答案 0 :(得分:1)

你可以在jsf bean中清理:

 public void setStudentName(){
   Student s=new Student(fname,lname);
   studentList.add(s);
   fname = "";
   lname="";
}