怎样从数据库取数据在这就不要多讲了吧。
举一个用户登录的例子吧
用户类User
public class User{
private String user ;
private String pass ;
//此处省略user和pass两个setter和getter方法
}
login.jsp页面
//登录的action,从jsp到action的传值
//显示信息,从action到jsp的传值
${msg}
Action类
import com.opensymphony.xwork2.ActionSupport.* ;
public class LoginAction extends .ActionSupport{
private String user ;
private String pass ;
//此处省略user和pass两个setter和getter方法,且必须要有这两个setter和getter方法
public String execute() throws Exception{
//创建ActionContext实例
ActionContext ctx = ActionContext.getContext();
//validLogin(user,pass)业务逻辑方法自己定义
//boolean valid = validLogin(user,pass) ;
boolean valid = true ;
if (valid) {
//关键所在,相当于servlet的request.setAttribute(String key , Object value)方法
ctx.put("msg" , "欢迎"+user+"用户登录") ;
return SUCCESS ;
}
else{
ctx.put("msg" , "用户名或密码错误") ;
return ERROR ;
}
}
}
struts.xml文件
welcome.jsp
${msg}
在action中将从数据库里取得的数据进行封装,如ArrayList
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("key", object);
存到request里 在页面request.getAttribute("key") 获取对象,比如List
也可以用strues2标签 EL表达式获取都行
1.单独写操作数据库的dao类
2.struts2的action类只处理页面的跳转,struts2.xml对action进行配置
3.在跳转后的jsp页面调用dao类里面的方法在页面输出结果。如果得到的是List(列表),可以借助struts标签进行输出。
MVC框架最好各自处理各自的任务,不要出现太高的耦合,程序的维护会因此变得困难
建议你去看下action中的值存放的ValueStack那个,action从数据库中读取的数据都是放在那里面,你只需要在jsp运用其中value就是你从数据库中读取的对象,二下面两个就是对象的相关属性
文件基本信息: