当前位置: 首页 > 知识库问答 >
问题:

在表单提交之后,使用JavaEE和JSF2,2,我的支持bean属性仍然为空

景河
2023-03-14

基本上,在输入中。xhtml有一个表单,它接受用户名和密码,如果它们等于特定值(与值无关),程序应该在浏览器中打印消息,但这不会发生。为了解决这个问题,我添加了两行“System.out.println(…)”我打印了属性的值,结果发现即使在我提交之后属性仍然为空。因此,在我单击控制台中的send之后,会将其写入“null”。感谢您的帮助!

这是UserBean类(支持bean)

 package bean;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;



@ManagedBean
@SessionScoped
public class UserBean implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String name;
    private String password;
    private String output_message;



    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    public String go(){
        output_message = "";

        if(name == null && password == null){
            output_message += "Both fields cannot be empty!";
        }else if(name == "name" && password == "pass"){
            output_message += "Success!";
        }else{
            output_message += "Data is wrong!";
        }

        System.out.println(name);
        System.out.println(password);

        return output_message;
    }

    public String getOutput_message() {
        return output_message;
    }
    public void setOutput_message(String output_message) {
        this.output_message = output_message;
    }
    public String ret(String r){
        return r;
    }

}

这是input.xhtml文件,其中包含将数据提交到bean的表单。(忽略urltemplate.xhtml,它只是一个父模板,有一个页眉和页脚,而不是input.xhtml定义的中间内容)

   <!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:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:cc="http://java.sun.com/jsf/composite/myComponent">

<ui:composition template="/WEB-INF/templates/template.xhtml">

    <ui:define name="content">

        <style type="text/css">
            #form1{
                position: absolute;
                top: 20%;
                left:40%;
                border: 1px solid black;
                background-color: orange;
            }
            td{
                padding-top:10px;
            }

            input[type="text"]{
                backgorund-color:blue;
            }

        </style>

        <form id="form1" method="post">
        <table columns="2">
            <tr>
                <td><span>Emri:</span></td>
                <td><input type="text" id="emri" value="#{userBean.name}"/></td>
            </tr>
            <tr>
                <td><span>Password:</span></td>
                <td><input type="password" id="pass" value="#{userBean.password}"/></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><button type="submit" onclick="#{userBean.go()}">Send</button></td>

            </tr>
        </table>
        </form>

        <p>#{user.output_message}</p>


    </ui:define>
</ui:composition>
</html>

共有2个答案

堵存
2023-03-14

我刚刚解决了这个问题。问题是输入标签,值属性不代表文本框中写的值,只是某种默认值或某种前置值。无论如何,我用的不是输入和表单标签,而是一个带有url xmlns: h="http://xmlns.jcp.org/jsf/html"的命名空间

柏高丽
2023-03-14

按钮html标签引起的问题。如果您想使用JSF机制,请不要使用超文本标记语言按钮或锚。相反,请使用(按钮/链接)组件提交页面。定义用户B的导航规则ean.go应该传回下一个页面名称。

 类似资料:
  • 我正在使用jsp将数据发布到servlet,但是发布数据之后,我希望保留在相同的jsp上。简单地说:1)我这里有一个带有两个文本框的jsp。我使用javascript在单击按钮时将数据从一个复制到另一个。2)我使用相同的按钮将数据发布到数据库。3)我希望两个操作一次完成,不应该转到第三个jsp(servlet发布结果),但是,应该转到我使用的另一个jsp。 我可以单独处理这两件事,但放在一起我就做

  • 是否可以使用地图作为支持对象?

  • 我通过JSONP获取一个值到我的网页。现在我想用这个值更新一个支持bean属性?如何处理?提前谢谢。 更新:好的,我的问题是有JavaScripts、JSF Ajax调用和Webservices,我必须看看什么时候触发了哪个动作。我想我需要更详细地描述我的处境。 我的支持bean: 我的xhtml页面: 我的Javascript文件: 页面渲染后我有三个阶段。preSaveCaseButton应该

  • 问题内容: 考虑: 提交表单时,如何确保下拉列表中的选定值保持选中状态?此表单位于WordPress(PHP)内部。 问题答案: 为了避免许多if-else结构,让JavaScript自动完成:

  • 问题内容: 我有多个具有相同班级名称的表格 那么我如何才能在我尝试使用的这n个表格中提交一个表格 但是它总是在n个表单中提交第一个表单。如何在n个表单之间提交随机表单。愿任何人能帮助我。 问题答案: 序列化表格时,需要引用该表格…

  • 我看过几个关于这个问题的帖子,但没有一个能解决我的问题。我正在使用XAMPP,在同一个文件夹中有一个html和一个php。 我要发送给php的是使用JavaScript中的表单()创建的。由于按预期打印了,它们是字符串和输入文件,因此构造良好。 但不幸的是,在php中,命令只输出,命令也输出。因此表单的内容似乎没有传递给PHP。 这里是html表单: 这里是提交表单的javascript: 这里的