我想获取用户登录的ID号,只显示与此用户ID相关的数据,如果有意义的话。这是我的索引bean(index.java)的代码,只是从一个简单的inputText中获取ID:
private String id;
public String getid() {
return id;
}
public void setid(String id) {
this.id = id;
}
这是用户的代码(类表)
public class table {
index i = new index();
final String pNo=i.getid();
public List<index> getMyList()
{
List<index> list = new ArrayList<index>();
PreparedStatement pstmt = null;
Connection con = null;
ResultSet rs = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/try", "root", "");
String sql = "SELECT task.tNo, clientcase.name "+
"FROM clientcase join task on clientcase.cNo = task.cNo "+
"Where task.responsiblePNo = ? AND (task.statue='opened'Or task.statue= 'pending')";
pstmt= con.prepareStatement(sql);
pstmt.setString(1, pNo);
rs= pstmt.executeQuery();
while (rs.next())
{
i.settNo(rs.getString("task.tNo"));
i.setCompanyName(rs.getString("clientcase.name"));
list.add(i);
}
}
catch(Exception e)
{}
我还有一个jsf页面有这个代码来获取id,如果这有任何意义:
<h:inputText id="personnelID" value ="#{index.id}"/>
我的问题是我可以获得身份证号码。如果我将表类中的get方法替换为实数,一切正常。但现在它只返回null。有人能帮助我吗?
答案 0 :(得分:1)
代码
index i = new index();
final String pNo=i.getid();
首次创建table
时正在运行,并且可能会将pNo
设置为null。但在那之后,你无法以任何方式改变它。您可能需要table
的构造函数,允许您设置pNo
,以便您可以从字段传入值。
答案 1 :(得分:0)
我的索引类中会有一个构造函数,并将Id设置为
public class index
{
private String id;
public String getid() {
return id;
}
public void setid(String id) {
this.id = id;
}
public index(string Id)
{
this.setid(Id);
}
}
然后在你的表类中,你可以像下面那样实例化索引;以这种方式,它将确保设置ID值,并且如果您第一次创建NULL
的对象并尝试获取ID值
index
public class table {
index i = new index("1234");
final String pNo=i.getid();
答案 2 :(得分:0)
你使用
吗?setid(String)
的任何位置?
否则id
的默认值为null
。
答案 3 :(得分:0)
创建新的index
实例
index i = new index();
在id
成员中创建的内容没有任何价值。您应该正确初始化对象,或者在此行之前获得初始化对象:
final String pNo=i.getid();