struts2开发中,想在action中读取数据库,然后将结果返回给jsp,显示出来。想知道action和jsp之间如何传递

最好有实例的代码,谢谢
2025-01-01 15:37:49
推荐回答(5个)
回答1:

怎样从数据库取数据在这就不要多讲了吧。
举一个用户登录的例子吧
用户类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
login.jsp


welcome.jsp

${msg}

回答2:

在action中将从数据库里取得的数据进行封装,如ArrayList list。在jsp页面中,通过将list中的值显示在jsp页面中。在action中要有list的get和set方法。如果要是单个值,刚只要jsp中的name值与action中定义的要取得的值一样,就可以。

回答3:

HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("key", object);

存到request里 在页面request.getAttribute("key") 获取对象,比如List
也可以用strues2标签 EL表达式获取都行

回答4:

1.单独写操作数据库的dao类
2.struts2的action类只处理页面的跳转,struts2.xml对action进行配置
3.在跳转后的jsp页面调用dao类里面的方法在页面输出结果。如果得到的是List(列表),可以借助struts标签进行输出。
MVC框架最好各自处理各自的任务,不要出现太高的耦合,程序的维护会因此变得困难

回答5:

建议你去看下action中的值存放的ValueStack那个,action从数据库中读取的数据都是放在那里面,你只需要在jsp运用其中value就是你从数据库中读取的对象,二下面两个就是对象的相关属性

文件基本信息: