Java object类型转换为int类型

在struts1的action类中设置了String类型的变量,int类型的变量,把他们放在request中,在jsp页面获取的时候object类型装换位int类型,(Integer)request.getAttribute("")没错,但是同样的方式转换String类型的变量的时候,报了异常

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer,很奇怪request.getAttribute("xx")返回object类型,怎么会报这样的异常呢?

最后只能把String类型变量转化为int类型,然后才设置request中。

 

代码:

	public ActionForward listjob(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//jobFormbean job=(jobFormbean)form;
		
		DbManager dbmgr=new DbManager();
		String  orgid=request.getParameter("orgid");
		//分页代码开始
		String page = request.getParameter("curpage");
		String countsql="select count(*) from ln_job where orgid='"+orgid+"'";
		int rowcount=dbmgr.rowscount(countsql);

	      if (page == null) {
	        page = "1";
	      }
	      if (page.equals("") || page.equals("0")) {

	        page = "1";
	      }
	      
	     
	      PageManager pmg = new PageManager();
	      pmg.setrowsPerPage(15);
	      pmg.setpagenum(Integer.parseInt(page));
	      
	      
	      pmg.setmaxRowCount(rowcount);

	      int rowsStart = pmg.getrowsStart();
	      int rowsEnd = pmg.getrowsEnd();
	      int maxPage = pmg.getmaxPage();
	      int nextpage = pmg.getnextpage(Integer.parseInt(page));
		
		
		
		//分页代码结束
		
		String sql="select * from (select jobid,jobname,orgid,row_number() over(order by jobid asc) rn from ln_job where orgid='"+orgid+"' ) where  rn>="+rowsStart+" and rn<="+rowsEnd;
		System.out.println(sql);
		//System.out.println(sql);
		rs=dbmgr.getQuery(sql);
		List<Job> list=new ArrayList<Job>();
		while(rs.next()){
			Job og=new Job();
			og.setJobid(rs.getInt("jobid"));
			og.setJobname(rs.getString("jobname"));
			og.setOrgid(rs.getString("orgid"));
			list.add(og);
			
		}
		sql="select orgname from ln_org where orgid='"+orgid+"'order by orgid asc";
		rs=dbmgr.getQuery(sql);
		String orgname="";
		while(rs.next()){
			orgname=rs.getString(1);
		}
		request.setAttribute("currentPage", Integer.parseInt(page));
		request.setAttribute("nextpage", nextpage);
		request.setAttribute("maxPage", maxPage);
		request.setAttribute("list", list);
		request.setAttribute("orgid",orgid);
		request.setAttribute("orgname",orgname);
		return mapping.findForward("list");
	}

struts-config.xml中配置

写道
<action path="/user/manage/job" name="JobFormbean" scope="request" type="com.hkr.ly.action.job.JobManage" parameter="method">
<forward name="list" path="/dtynwebmain/job/joblist.jsp"/>
</action>

在joblist.jsp页面中

<%
 int nextpage=(Integer)request.getAttribute("nextpage");
 int maxPage=(Integer)request.getAttribute("maxPage");
 int currentPage=(Integer)request.getAttribute("currentPage");
 int fontpage=0;
 if(currentPage>1){
 	fontpage=currentPage-1;
}

%>

 总结:

 String转换为int类型的方法:

1. Integer.parseInt([String])

2.Integer.valueOf([String]).intValue();

3.Integer.decode([String]):将 String 解码为 Integer。接受通过以下语法给出的十进制、十六进制和八进制数字

例如:

int a=Integer.decode("0144"); //八进制转换结果为100

int b=Integer.decode("123");//十进制转换结果为123

int c=Integer.decode("0x123");//16进制转换结果为291

注:Integer.decode([String])加负号也可以转换,不过字符串不能有空格。否则报NumberFormatException异常

注: 字串转成 Double, Float, Long 的方法大同小异.

int转换为String类型方法:

1.String s = String.valueOf(i);
2.String s = Integer.toString(i);
3. String s = "" + i;
不常用的:
1.Integer. toBinaryString (int i) :以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
2.Integer. toHexString (int i) :以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
3.Integer. toOctalString (int i):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
注: Double, Float, Long 转成字串的方法大同小异.

object类型转换为int类型:

1.如果object是byte,short,int,char类型生成的,那么不用转换直接赋值就ok了。

2.如果object是字符串类型生成的,先把object转换为String类型的,再把String类型转换为int类型。

例如.

String myInt="123";
Object os=myInt;

int b=Integer.parseInt((String)os);//还可以os.toString()

 3.如果object是float,double,long类型生成的,思路和上面一样,先把object转换为相应的数据类型,然后再转换为int类型。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值