package com.pro.action;import java.util.List;
import java.util.Map;import com.opensymphony.xwork2.ActionContext;
import com.pro.entity.Cpinfo;
import com.pro.serivce.CpinfoSerivce;public class CpinfoAction {
private static final long serialVersionUID = 1L;
private CpinfoSerivce serivce;
@SuppressWarnings("unchecked")
public String cpList() throws Exception {
List<Cpinfo> li = (List<Cpinfo>) serivce.selectAll();
for(int i=0;i<li.size();i++){
System.out.println(li.get(i).getName());
}
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);
return "rs";
} public CpinfoSerivce getSerivce() {
return serivce;
} public void setSerivce(CpinfoSerivce serivce) {
this.serivce = serivce;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'list.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<body> <s:iterator value="#request.cpList" status="cp">
类型:
<a href="#"><s:property value="#cp.name" /> </a> </s:iterator> </body>
</html>
进过测试 页面可以显示出 【 类型:】 10个 这个是写死的只是为了测试是否list有值
也就是我的list 已经捕捉到里面有值
for(int i=0;i<li.size();i++){
System.out.println(li.get(i).getName());
}控制塔可以输出结果但是 <s:property value="#cp.name" />无法显示 项目是不抱错的不知道哪写的有问题呵呵,望高手指点,
还有
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);不知道 struts2 需要这样做不
因为我见网上有人没有这么写,
import java.util.Map;import com.opensymphony.xwork2.ActionContext;
import com.pro.entity.Cpinfo;
import com.pro.serivce.CpinfoSerivce;public class CpinfoAction {
private static final long serialVersionUID = 1L;
private CpinfoSerivce serivce;
@SuppressWarnings("unchecked")
public String cpList() throws Exception {
List<Cpinfo> li = (List<Cpinfo>) serivce.selectAll();
for(int i=0;i<li.size();i++){
System.out.println(li.get(i).getName());
}
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);
return "rs";
} public CpinfoSerivce getSerivce() {
return serivce;
} public void setSerivce(CpinfoSerivce serivce) {
this.serivce = serivce;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'list.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<body> <s:iterator value="#request.cpList" status="cp">
类型:
<a href="#"><s:property value="#cp.name" /> </a> </s:iterator> </body>
</html>
进过测试 页面可以显示出 【 类型:】 10个 这个是写死的只是为了测试是否list有值
也就是我的list 已经捕捉到里面有值
for(int i=0;i<li.size();i++){
System.out.println(li.get(i).getName());
}控制塔可以输出结果但是 <s:property value="#cp.name" />无法显示 项目是不抱错的不知道哪写的有问题呵呵,望高手指点,
还有
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);不知道 struts2 需要这样做不
因为我见网上有人没有这么写,
这里不能这样使用吧?
request.put("cpList", li);
一般都是.setAttribute("cpList", li);这样才能绑定数据到request域,不然娶不到的。
类型:
<a href="#"><s:property value="#cp.name" /> </a></s:iterator>
伙计,你怎么用status来记录呢,好像不对吧,struts2中用的是id还是var来着,我忘了,你看一下文档
<c:forEach var="cp" items="${requestScope.cpList}">
<a href="#">${cp.name}</a>
</c:forEach>
类型:
<a href="#"><s:property value="#cp.name" /> </a>改为:
<s:iterator value="#request.cpList" id="cp">
类型:
<a href="#"><s:property value="#cp.name" /> </a>
try it...
这样使用是可以的,request容器底层就是一个map集合
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);你用map封装的数据
所以你拿数据的时候只能用map的属性来提取
比如你拿cp的name
必须这样写:${map.value.p.product_name}
我做购物车就是你这样搞的。完全一样。只不过我用的EL表达式!
类型:
<a href="#"><s:property value="#cp.name" /> </a></s:iterator>应改为
<s:iterator value="#request.cpList" var="cp">
类型:
<a href="#"><s:property value="#cp.name" /> </a></s:iterator>
Map<String, List<Cpinfo>> request = (Map<String, List<Cpinfo>>) ActionContext.getContext().get("request");
request.put("cpList", li);strust2不需要这样写,只要把li作为action的属性,然后提供get set方法就行了
.name
我看错了 我刚看了下我本来应该写
<s:iterator value="#request.cpList" id="cp">
我写成
<s:iterator value="#request.cpList" status="cp">
还没跑我跑就知道错了
status 是别名.................
strust2不需要这样写,只要把li作为action的属性,然后提供get set方法就行了如何写?cpList get set 省略...
public String cpList() throws Exception {List<Cpinfo> cpList = (List<Cpinfo>) serivce.selectAll();return "rs";
}
这样吗?
package com.pro.action;import java.util.List;
import com.pro.serivce.CpinfoSerivce;public class CpinfoAction { private static final long serialVersionUID = 1L; private CpinfoSerivce serivce; @SuppressWarnings("unchecked")
private List cpList = null; @SuppressWarnings("unchecked")
public String cpList() throws Exception {
setCpList((List) serivce.selectAll());
return "rs";
} public CpinfoSerivce getSerivce() {
return serivce;
} public void setSerivce(CpinfoSerivce serivce) {
this.serivce = serivce;
} @SuppressWarnings("unchecked")
public void setCpList(List cpList) {
this.cpList = cpList;
} @SuppressWarnings("unchecked")
public List getCpList() {
return cpList;
}
}
JSP:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'list.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<body>
<s:iterator value="#request.cpList" id="cp"><s:property value="#cp.name" /></s:iterator>
</body>
</html>