【发布时间】:2013-12-27 04:00:26
【问题描述】:
我使用表达式语言在 jsf 中将登录表单的值设置为 bean,现在我想在我的其他 Java 程序中获取这些 bean 值。请帮助我如何将这些 bean 值导入其他 Java 程序。我的代码如下:
登录.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<title>sample jsf</title>
</head>
<body>
<f:view>
<h:form>
id:<h:inputText value="#{loginbean.id}" />
<br />
username:<h:inputText value="#{loginbean.username}" />
<br />
password:<h:inputSecret value="#{loginbean.password}" />
<br />
<h:commandButton action="#{insert.getmethod1()}" value="go" />
</h:form>
</f:view>
</body>
</html>
我的 bean:loginbean.java
package com.sensiple.beanvo;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name = "loginbean")
@SessionScoped
public class loginbean {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
//beans setting values
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我的动作类:insert.java
在这里,我试图从支持 bean 获取值并尝试进行登录身份验证,但我无法将 bean 值获取到我的类中。
package com.sensiple.impl;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import com.sensiple.beanvo.loginbean;
import com.sensiple.util.RemoteConnection;
@ManagedBean(name = "insert")
@SessionScoped
public class insert {
public String getmethod1() throws SQLException {
try
{
Connection connection = RemoteConnection.initiateConnection(
"192.168.3.135", "test", "MBC_User", "root");
String sql = "select * from login";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next())
{
loginbean loginbean= new loginbean();
String id = loginbean.getId();
System.out.println(id);//i am getting null as i created new bean object,how to get bean vales here
String user = resultSet.getString("id");
System.out.println(resultSet.getString("id"));
if ((user == id) && (id != null))
{
return "Login.xhtml";
}
}
}
catch (SQLException e) {
e.printStackTrace();
}
return "s.xhtml";
}
}
【问题讨论】:
-
为什么同一个页面需要 2 个 bean?
-
我对 jsf 很陌生..我不知道如何从 jsf 命令按钮调用其他 java 类中的方法..所以使用托管 bean 这是错误的,但我试图点击 java 类方法..我可以知道如何在其他 java 类中调用方法以及如何在 java cladd nethod "getmethod1()" 中使用 bean 值
-
不是直接从 jsf 页面调用 getmethod1(),而是调用 loginBean 中的一个方法,并通过传递所需的值从中调用 getmoethod1()。
-
@Adarsh 我建议将该评论作为答案移动,然后 OP 可能会接受它。
-
praveenkolla:Java 类不是 Java 程序。 Java 程序是一个定义了
public static void main(String[] args)方法的类,它被JVM 调用并在自己的JVM 实例中运行。您想要/需要的是从另一个类实例调用一个类实例的方法。请记住,这是两个不同的问题。
标签: jsf