登陆的action调用dao层的一个登陆方法,方法的返回值是一个ArrayList<Login>类型的变量,这个方法的返回值赋给action里的一个成员变量--ArrayList<Login> userList;
在成功跳转后的页面想要把它迭代出来,但它就是没效果。(dao层的方法有值,赋给action也有值)。
新手刚接触struts2,不明白这是怎么回事,求各位大神指点。我想在“欢迎”[和“修改密码”之间把它迭代输出。/size]
[size=14px]我也试过在“插播公告的地方”输出,但还是不行以下是登陆的action的代码:
package action;
import model.Login;
import dao.DateBase;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;public class Login_Action extends ActionSupport implements SessionAware,RequestAware{
private static final long serialVersionUID = 1L;
private Login login;
private DateBase db;
Map<String, Object>sessionMap;
HttpServletRequest request;
String gender;
ArrayList<Login> userList;
public String execute() throws SQLException, ClassNotFoundException {
db=new DateBase();
sessionMap=new HashMap<String, Object>();
String id = login.getUserId();
String password=login.getPassWord(); userList= db.login(id, password);
if(userList!=null){
System.out.println("测试:Login_Action的userList的值:"+userList);
return SUCCESS;
}else{
return ERROR;
}
}
@Override
public void setSession(Map<String, Object> arg0) {
// TODO Auto-generated method stub
} @Override
public void setRequest(Map<String, Object> arg0) {
// TODO Auto-generated method stub
}
public Login getLogin() {
return login;
} public void setLogin(Login login) {
this.login = login;
}
public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
}
}以下是DAO层的登陆部分的代码:
package dao;import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import model.Login;
import model.UserInfo;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;public class DateBase extends ActionSupport implements SessionAware{
private static final long serialVersionUID = 1L;
private Login login;
private UserInfo userInfo;
Map<String, Object>sessionMap;
java.sql.Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String name=null; //用来存放rs这个对象查询数据库的uName字段的结果。
ArrayList<Login> list;
//登陆的方法:
public ArrayList<Login> login(String id,String password) throws SQLException, ClassNotFoundException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=struts2";
conn = DriverManager.getConnection(url, "sa","123456");
String sSql = "select * from userInfo where userId =? and userPassWord =?";
//进行输出,直观地判断是否有值为空。
System.out.println("测试:DAO的登陆方法输出:id为"+id+" "+"密码:"+password);
pstmt= conn.prepareStatement(sSql);
pstmt.setString(1,id);
pstmt.setString(2,password);
rs = pstmt.executeQuery();
if(rs.next()){
login=new Login();
// sessionMap=new HashMap<String, Object>();
list=new ArrayList<Login>() ;
name= rs.getString("userName");
login.setUserName(name);
login.setUserId(rs.getString("userId"));
login.setPassWord(rs.getString("userPassword"));
login.setRole(rs.getString("userRole"));
list.add(login);
// sessionMap.put("user", login);
System.out.println("测试:DAO的list的输出:Object的数量:"+list.size());
return list;
}else{
return null;
}
}
}
在成功跳转后的页面想要把它迭代出来,但它就是没效果。(dao层的方法有值,赋给action也有值)。
新手刚接触struts2,不明白这是怎么回事,求各位大神指点。我想在“欢迎”[和“修改密码”之间把它迭代输出。/size]
[size=14px]我也试过在“插播公告的地方”输出,但还是不行以下是登陆的action的代码:
package action;
import model.Login;
import dao.DateBase;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;public class Login_Action extends ActionSupport implements SessionAware,RequestAware{
private static final long serialVersionUID = 1L;
private Login login;
private DateBase db;
Map<String, Object>sessionMap;
HttpServletRequest request;
String gender;
ArrayList<Login> userList;
public String execute() throws SQLException, ClassNotFoundException {
db=new DateBase();
sessionMap=new HashMap<String, Object>();
String id = login.getUserId();
String password=login.getPassWord(); userList= db.login(id, password);
if(userList!=null){
System.out.println("测试:Login_Action的userList的值:"+userList);
return SUCCESS;
}else{
return ERROR;
}
}
@Override
public void setSession(Map<String, Object> arg0) {
// TODO Auto-generated method stub
} @Override
public void setRequest(Map<String, Object> arg0) {
// TODO Auto-generated method stub
}
public Login getLogin() {
return login;
} public void setLogin(Login login) {
this.login = login;
}
public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
}
}以下是DAO层的登陆部分的代码:
package dao;import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import model.Login;
import model.UserInfo;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;public class DateBase extends ActionSupport implements SessionAware{
private static final long serialVersionUID = 1L;
private Login login;
private UserInfo userInfo;
Map<String, Object>sessionMap;
java.sql.Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String name=null; //用来存放rs这个对象查询数据库的uName字段的结果。
ArrayList<Login> list;
//登陆的方法:
public ArrayList<Login> login(String id,String password) throws SQLException, ClassNotFoundException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=struts2";
conn = DriverManager.getConnection(url, "sa","123456");
String sSql = "select * from userInfo where userId =? and userPassWord =?";
//进行输出,直观地判断是否有值为空。
System.out.println("测试:DAO的登陆方法输出:id为"+id+" "+"密码:"+password);
pstmt= conn.prepareStatement(sSql);
pstmt.setString(1,id);
pstmt.setString(2,password);
rs = pstmt.executeQuery();
if(rs.next()){
login=new Login();
// sessionMap=new HashMap<String, Object>();
list=new ArrayList<Login>() ;
name= rs.getString("userName");
login.setUserName(name);
login.setUserId(rs.getString("userId"));
login.setPassWord(rs.getString("userPassword"));
login.setRole(rs.getString("userRole"));
list.add(login);
// sessionMap.put("user", login);
System.out.println("测试:DAO的list的输出:Object的数量:"+list.size());
return list;
}else{
return null;
}
}
}
解决方案 »
- 错误异常weblogic.security.service.SecurityServiceRuntimeException: [Security:09
- 修改java应用程序所有组件字体问题,有代码
- struts2上传文件出现Invalid field value for field "upload".
- sharepoint api
- Spring+Jdb+tx:advice的的事务不起作用
- 求正则表达式用法!
- Java天下群(17129182) - 欢迎各Java爱好者加入
- 哪有JBulider下载?
- *********各位仁兄,struts初学者的初学问题,100分招聘(高手们问题过于简单,不要见笑)*******************
- 请教,哪位知道关于定制电子表单和定制工作流程的基于j2ee的中间件产品,知道厂家和中间件名称也行,最好将使用情况(好用吗)也说说,谢
- 如何用java生成一个可用的.ts文件
- 下载了的SERVlet代码 怎么配置
ActionContext.getContext().put("userList", userList);
在页面使用${userList}
具体实例可百度。
sinat_33534419
sinat_33534419
本版等级:T1
#3 得分:0 回复于: 2017-05-11 09:17:59
s:iterator 用了,什么都迭代不出来
那在action生成ArrayList<Login> userList;
的set和get方法。