我用的是Struts2 在Action中定义了一个变量,想要在JSP中获取Action中定义的那个变量的值 怎么获取?

package cn.classiclink.web.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.igfay.jfig.JFig;

import com.sun.java_cup.internal.internal_error;

import cn.classiclink.serviceclient.AdverService;
import cn.classiclink.serviceclient.CommonService;
import cn.classiclink.serviceclient.CouponService;
import cn.classiclink.serviceclient.DealerService;
import cn.classiclink.serviceclient.bean.Image;
import cn.classiclink.serviceclient.bean.PagedList;
import cn.classiclink.serviceclient.bean.Plate;
import cn.classiclink.util.ComponentFactory;
import cn.classiclink.web.model.Pagination;
@Results({
@Result(name="default", location="/page/probeDealer.jsp"),
})
public class ProbeDealer extends BaseAction {
private CouponService cs;
private DealerService ds;
private CommonService cns;
private AdverService as;
private Pagination pagination;
private int pageNow = 1 ; //初始化为1,默认从第一页开始显示
private int pageSize = 15 ; //每页显示5条记录
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public Pagination getPagination() {
return pagination;
}
public void setPagination(Pagination pagination) {
this.pagination = pagination;
}
/**
* 构造
*/
public ProbeDealer(){
cs=(CouponService)ComponentFactory.getInstance().getComponent("couponService");
ds=(DealerService)ComponentFactory.getInstance().getComponent("dealerService");
cns=(CommonService)ComponentFactory.getInstance().getComponent("commonService");
as=(AdverService)ComponentFactory.getInstance().getComponent("adverService");
}

@Action("probeDealer")
public String home() {

return "default";
}
/**
* 小编探商家 标题列表
* @return
*/
public List<Plate> getXiBianList(){
HttpServletRequest request=ServletActionContext.getRequest();
PagedList<Plate> list=cns.getAdPlates(110, 120);
List<Plate> list2=new ArrayList<Plate>();
int totalpage=list.getCount()/15==0?list.getCount()/15:list.getCount()/15+1;
if(pageNow>=totalpage){
pageNow=totalpage;
}
if(pageNow<=1){
pageNow=1;
}
int pageCount=pageNow*10;
if(pageCount>=list.getCount()){
pageCount=list.getCount();
}
for(int i=pageNow*10-10;i<pageCount;i++){
Plate plate=(Plate)list.get(i);
list2.add(plate);
}
return list2;
}
}
页面获取值<s:property value ="pageNow"/>但是不显示

首先明确下,你这里对pageNow属性 设置了getter setter方法
在值栈中看有没有这个属性,属性值是多少?
没有证明你的action调用有问题。根本不是这个action
如果有,看值是多少?页面上用<s:debug></s:debug>追问

我本地不能测试 公司端口都连不上 会不会是value不能获取int属性的值的 只能获取String和Integer这种类型的?

追答

不存在这个问题,给你个现成的分页代码,s2sh的,你自己看下,其实都差不多。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-27
可以先在action中用request.getSession.setAttribute("var",value)
然后再惊悚片页面里就用<% String s = request.getSession.getAttribute("var")%>
第2个回答  2011-04-26
这说明你的这个pageNow没有值呗,你自己到值栈里面去看下吧!<s:debug></s:debug>追问

private int pageNow = 1 ; //初始化为1,默认从第一页开始显示
我在action中定义的时候已经初始化了 怎么可能没有值呢?这种需不需要写个JAVABEAN的?
还有 BaseAction 这个action就是集成actionSupport的

第3个回答  2011-04-26
请问你是否用了 Spring啊~?如果没用的话 就没有IOC依赖注入...就需要将 pageNow 用 setAttribute 或者 setParamater传值给页面...追问

用了

追答

别的属性都有么...是不是没有注入~?还是属性名的问题呢...

追问

别的属性有的啊 应该不是注入问题吧 属性名应该没问题 一个不是关键字 我也第一次接触Struts2 很多地方不懂

追答

...那你就像他们说的那样Debug看下参数

第4个回答  2011-04-26
Action implements RarameterAware

Map parameters ;get set 方法;

this.parameters.getParamter(页面定义);
相似回答
大家正在搜