Struts2中,action是如何将数据传给jsp页面的?

解决方案 »

  1.   

    action类中添加private属性,getter setter ,其他的都是封装好了的,实际上是转发哪些数据流入流出 都在private属性里面写
      

  2.   

    同意楼上两位说的。当点击页面一个按钮,在action中是运行edit方法的话,就在此方法中吧要赋值的private属性赋值。然后转到一个新页面的话,struts会读private属性的值的。
      

  3.   

    封装后直接调用就行了。用struts标签或者EL表达式等等都能调用出来。
      

  4.   

    struts2是个框架 核心就是个过滤器 在用户发送请求的时候 进行过滤+拦截+处理
    struts2中默认了很多拦截器比如参数封装 类型转换 等等  
    比如 用户请求服务器 请求中包含了参数name 那么服务器里处理的action要包含一个对应的getName方法 有无对应的name属性都没有关系 只要有对应的getter setter 即可 因为规则是开发人员定的,你不这样写 就会出现问题,你现在 问action怎么把属性返回给页面的  action中的属性有对应的set get 即可 不用区分哪个是用来封装请求的参数 哪个是用来返回给页面的参数  都是内部封装好了  你只是会用即可 代码都是开源的 自己看看就行了 
      

  5.   

    我现在遇到问题,action中的属性,在jsp页面中读取不出来。下面贴出代码
    package com.wxh.action;import java.util.Iterator;
    import java.util.List;
    import java.util.ArrayList;import org.apache.log4j.Logger;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;import com.wxh.model.WoodCategory;
    import com.wxh.service.InventoryManager;public class WoodCategoryAction extends ActionSupport implements
    ModelDriven<WoodCategory> {
    static final Logger logger = Logger.getLogger(WoodCategoryAction.class); private WoodCategory woodCategory;
    private InventoryManager inventoryManager;
    private List<WoodCategory> wcList = new ArrayList<WoodCategory>(); @Override
    public WoodCategory getModel() {
    return woodCategory;
    } public String execute() {
    return SUCCESS;
    } public void save() {
    inventoryManager.save(woodCategory);
    } public String list() { wcList = inventoryManager.listWoodCategory(); Iterator it = wcList.iterator();
    while (it.hasNext()) {
    WoodCategory wc = (WoodCategory) it.next();
    logger.warn(wc.getName());
    }
    logger.warn(wcList.size());
    logger.warn("list excuted!"); return SUCCESS;
    } public WoodCategory getWoodCategory() {
    return woodCategory;
    } public void setWoodCategory(WoodCategory woodCategory) {
    this.woodCategory = woodCategory;
    } public InventoryManager getInventoryManager() {
    return inventoryManager;
    } public void setInventoryManager(InventoryManager inventoryManager) {
    this.inventoryManager = inventoryManager;
    } public List<WoodCategory> getWcList() {
    return wcList;
    } public void setWcList(List<WoodCategory> wcList) {
    this.wcList = wcList;
    }}
    --------------------------------------------------------------------------------------
    jsp
    --------------------------------------------------------------------------------------
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@taglib uri="/struts-tags" prefix="s"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Registration Page</title>
    <s:head />
    <style type="text/css">
    @import url(style.css);
    </style>
    </head>
    <body>
    <s:form action="saveWoodCategory">
    <s:hidden>id</s:hidden>
    <s:textfield name="name" lable="木材种类" />
    <s:submit />
    </s:form>
    <table>
    <tr>
    <th>Name</th>
    </tr>

    <s:iterator  value="wcList" var="list">
    <tr>
    <s:property value="list.name"/>
    </tr> </s:iterator>
    </table></body>
    </html>
      

  6.   

    var已经过时了被ID 取缔了 已经 
    在action里修改一下 把wcList放到request里 然后页面在去获取
    ServletActionContext.getRequest().setAttribute("wcList", wcList);页面
    <s:iterator value="#request.wcList">
    <tr>
    <s:property value="name"/>
    </tr>
     你试试