简体   繁体   English

为什么我的JSF <h:inputText> 不要在bean类中设置值?

[英]Why my jsf <h:inputText> dont set the value in bean class?

I have a problem about <h:inputText> of JSF, I'm trying to set value of a variable in a bean class but it can't set value by <h:inputText> tag . 我有一个关于JSF的<h:inputText>的问题,我试图在Bean类中设置变量的值,但是它不能通过<h:inputText> tag设置值。 I'm a newbie about JSF. 我是JSF的新手。

My jsp code: 我的jsp代码:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="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">
<head>
<link rel="stylesheet" href="../style.css" />
<title>Tìm hồ sơ</title>
</head>
<body>
    <div id="content">
        <jsp:include page="header.jsp" />
        <h1>Nhập hồ sơ thí sinh - Kì tuyển sinh 2015</h1>
        <f:view>
                <h:form>
                    <font color="black"> Tìm hồ sơ: <br /></font>
                    <table>
                        <tr>
                            <td>SBD:</td>
                            <td><h:inputText id="sbd" value="#{hsinfo.fsbd}"
                                    required="true"></h:inputText></td>
                            <td><h:message for="sbd" /></td>
                        </tr>
                        <tr>
                            <td>Họ tên:</td>
                            <td><h:inputText id="ten" value="#{hsinfo.fname}"></h:inputText></td>
                        </tr>
                        <tr>
                            <td>Giới tính: <h:selectOneRadio id="gioitinh"
                                    value="#{hsinfo.fgioitinh}">
                                    <f:selectItem itemValue="M" itemLabel="Nam" />
                                    <f:selectItem itemValue="F" itemLabel="Nữ" />
                                </h:selectOneRadio>
                            </td>
                        </tr>
                        <div style="position: absolute;margin-top: 24px;margin-left: 654px;">
                            <h:commandButton
                                style="width:84px; height:84px;margin-top:-24px;"
                                action="#{hsinfo.findHS}" value="Tìm kiếm" immediate="true" />
                        </div>
                    </table>
                </h:form>
        </f:view>
    </div>
</body>
</html>

my bean class: 我的豆类:

package Beans;

public class hsinfo {

    private String fsbd;
    private String fname;
    private String fgioitinh;



    public String getFsbd() {
        return fsbd;
    }

    public void setFsbd(String fsbd) {
        this.fsbd = fsbd;
    }

    public String getFname() {
        return fname;
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    public String getFgioitinh() {
        return fgioitinh;
    }

    public void setFgioitinh(String fgioitinh) {
        this.fgioitinh = fgioitinh;
    }

}

I made another jsp and bean class that successful to set value by <h:inputText> tag, but I don't know why it not work in this jsp and bean class! 我制作了另一个通过<h:inputText>标记成功设置值的jsp和bean类,但是我不知道为什么在这个jsp和bean类中它不起作用!

Your problem is caused by having immediate="true" on the <h:commandButton> . 您的问题是由<h:commandButton>上的<h:commandButton> immediate="true"引起的。

<h:commandButton ... action="#{bean.action}" immediate="true" />

It will skip processing of all input fields which doesn't have immediate="true" . 它将跳过对所有没有immediate="true"输入字段的处理。

Just get rid of it. 摆脱它。

<h:commandButton ... action="#{bean.action}" />

See also: 也可以看看:


Unrelated to the concrete problem, make sure you're using up to date resources to learn JSF. 具体问题无关 ,请确保您使用的是最新资源来学习JSF。 Your code is JSF 1.x style while we're already on JSF 2.x since 2009. Start here: https://stackoverflow.com/tags/jsf/info . 自2009年以来我们就已经在JSF 2.x上使用,您的代码是JSF 1.x样式。从这里开始: https : //stackoverflow.com/tags/jsf/info

You need : 你需要 :

  • @Named or @ManagedBean annotation on class @Named@ManagedBean批注

  • Scope 范围

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM