首先。你的action有问题。
list不应该是方法体里的变量,list需要有get set 方法。这样jsp页面会取不到值。改成下面这样(我就不写get set方法了。你自己加):
public class A extends ActionSupport
{
Private String username;
Private String password;
Private List list ;
username与password相应的get set方法;
public String execute()
{
list = 这里调用了一个java类,到了一LIST类的
//
//请教这里面应该怎么写才能把在上面得到的list类传到jsp页面上去
//成功转到yes.jsp
}
}
在JSP页面的<@page>标签下面加一个
<@ taglib prefix="s" uri="/struts-tags" >标签包(关于这个标签包的配置和使用建议到网上搜索看看),然后
yes.jsp写法。
这里面item对应着list里的每个元素。
如果item 是对象(如是People对象且People有一个name属性)则可以写成下这样。
以前用的是struts1.2 我一般是这样
List list = new ArrayList()
request.setAttribute("list", list);
在JSP中.
<% List lsit = (List)request.getAttribute("list") %>
--------------------------------------------
Struts2
1.action标签允许开发者在JSP页面中直接调用action,该标签有以下属性:
(1)executeResult:可选属性,为一个Boolean类型值,用来指定是否显示action的执行结果,默认值为false,即不显示。
(2)id:可选属性,用来引用该action的标识。
(3)name:必填属性,用来指定该action的实现类位置。
(4)namespace:可选属性,用来指定该标签调用的action所在的命名空间。
(5)ignoreContextParams:可选属性,用来指定该页面中的请求参数是否需要传入调用的action,默认值为false,即将本页面的请求参数传入被调用的action。
2.Struts2页面中需要显示动态数据时,需要将这些数据在页面文件外面获取,然后通过某种方式传到页面中,因为要避免在JSP页面中编写Java代码。比如需要从数据库中读取一系列数据,我们一般要通过action来获取这些数据,然后让页面得到action中获取的数据。
3.下面举一个简单的例子:
显示数据库中所有的书本信息
(1)书本的实体类为Book.java,反向表生成Hibernate实体类等过程这里不说。下面是Book.java的示例内容:
package entity;
public class Book implements java.io.Serializable {
private Integer bookId;
private String bookName;
private String bookAuthor;
public Integer getBookId() {
return this.bookId;
}
public void setBookId(Integer bookId) {
this.bookId = bookId;
}
public String getBookName() {
return this.bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getBookAuthor() {
return this.bookAuthor;
}
public void setBookAuthor(String bookAuthor) {
this.bookAuthor = bookAuthor;
}
}
(2)查询所有书本的方法,该方法所在的类为BookManage.java,其示例内容如下:
package dao;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.*;
import entity.*;
public class BookManage extends HibernateDaoSupport {
@SuppressWarnings("unchecked")
public List
String hql = "from Book as book ";
try{
List
return allBook;
}catch (RuntimeException re) {
throw re;
}
}
}
(3)创建一个action用来获取所有书本信息,action为AllBookAction.java,其示例内容如下:
package com.xiaoqi.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.util.*;
import dao.BookManage;
import entity.Book;
@SuppressWarnings("serial")
public class LeftAction extends ActionSupport{
private BookManage bookManage;
public void setBookManage(BookManage bookManage) {
this.bookManage = bookManage;
}
public String execute(){
List
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("allBook", allBook);
return null;
}
}
在上述代码中,将获取的所有书本信息保存到了名为"allBook"的request对象中,并返回null,因为返回值在现在这种情况下没有用。
(4)在struts.xml中,配置该action,内容如下:
(5)applicationContext.xml中配置该action,内容如下:
(6)最后看下显示页面book.jsp,其内容如下:
<%@ page language="java" pageEncoding="gb2312"%>
<%@taglib uri="/struts-tags" prefix="s"%>
......
书ID:
书名:
作者:
上述代码中,先用
首先你要配置struts.xml 文件 直接放在src下
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
yes.jsp
按照以上配置的访问路径是
http://localhost:port/你的应用名/default/yes.action
访问这这个路径就能的到与之在struts.xml配置好的Action的所有属性,别直接访问jsp
Action 里写
private List list = new ArrayList()
以及list 的get set方法
jsp里大致这样
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
一楼的我感觉有些问题补充下list应该写成类属性没错,但是必须有相应的get set方法
public class A extends ActionSupport
{
Private String username;
Private String password;
Private List list ;
username与password还有list相应的get set方法;
public String execute()
{
list = 这里调用了一个java类,到了一LIST类的
//setList(list);
}
}
这样你就可以在跳转的jsp页面获取了用标签和request那就看你的喜欢了。
list 放request 然后再页面上输除这个list就可以了