有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

inputText中的JavaJSFMySQL项目首先显示值,但在修改后(通过绑定)提交时,它传递了原始值

inputText中的JSFMySQL项目首先显示来自DB的值,但在修改(通过绑定)后提交时,它传递了我从MySQL数据库收到的原始值

以下是表格:

<h:form>
            User name:
            <h:inputText 
                value="#{customer.customer.name}"
                binding="#{username}">    
            </h:inputText>
            <br/>

            Password:
            <h:inputText 
                value="#{customer.customer.password}"
                binding="#{pass}">    
            </h:inputText>
            <br/>

        <h:commandButton id="submit" value="Modify" action="#{customer.modifyUser(customer.customer.id, username.value, pass.value)}"/>
    </h:form>

用于按id从DB获取数据的Java代码,我从上一页传递该代码(它正确显示数据):

public Customer getCustomer() {
    Customer cxx = new Customer();
    try {
        String query = "SELECT * FROM users WHERE id=" + id;
        rs = st.executeQuery(query);
        rs.next();
        cxx.setId(id);
        cxx.setName(rs.getString("login"));
        cxx.setPassword(rs.getString("password"));
    } catch (Exception ex) {
        System.out.println("Error_query_getCust: " + ex);
    }
    return cxx;

}

按id修改数据库中数据的Java代码:

public void modifyUser(int id, String username, String pass) {
    PreparedStatement ps = null;
    try {
        String query = "UPDATE users SET login='"+ username +"', password = '"+ pass +"' WHERE id=" + id;
        ps = con.prepareStatement(query);
        int i = ps.executeUpdate();
        if (i > 0) {
            System.out.println("User: , "+ username +", modified successfully!");
            setResultHelper("Thank you! User: , "+ username +", modified successfully!");
        }
    } catch (Exception ex) {
        System.out.println("Error_create: " + ex);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    我认为我的Java代码很好,因为问题来自xHTML页面,它不发送修改后的值,而是发送我从DB获取的原始值

    我只需要找到另一种方法,在h:inputText中显示DB中的值,然后在相同的h:inputText中修改它们,并将修改后的数据发送给方法modifyUser(int-id、String-username、String-pass)