Java object类型转换为int类型

来源:互联网 发布:华为悦盒怎么设置网络 编辑:程序博客网 时间:2024/05/17 23:46


 

在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中。

 

代码:

Java代码  收藏代码
  1. public ActionForward listjob(ActionMapping mapping, ActionForm form,  
  2.         HttpServletRequest request, HttpServletResponse response)  
  3.         throws Exception {  
  4.     //jobFormbean job=(jobFormbean)form;  
  5.       
  6.     DbManager dbmgr=new DbManager();  
  7.     String  orgid=request.getParameter("orgid");  
  8.     //分页代码开始  
  9.     String page = request.getParameter("curpage");  
  10.     String countsql="select count(*) from ln_job where orgid='"+orgid+"'";  
  11.     int rowcount=dbmgr.rowscount(countsql);  
  12.   
  13.       if (page == null) {  
  14.         page = "1";  
  15.       }  
  16.       if (page.equals("") || page.equals("0")) {  
  17.   
  18.         page = "1";  
  19.       }  
  20.         
  21.        
  22.       PageManager pmg = new PageManager();  
  23.       pmg.setrowsPerPage(15);  
  24.       pmg.setpagenum(Integer.parseInt(page));  
  25.         
  26.         
  27.       pmg.setmaxRowCount(rowcount);  
  28.   
  29.       int rowsStart = pmg.getrowsStart();  
  30.       int rowsEnd = pmg.getrowsEnd();  
  31.       int maxPage = pmg.getmaxPage();  
  32.       int nextpage = pmg.getnextpage(Integer.parseInt(page));  
  33.       
  34.       
  35.       
  36.     //分页代码结束  
  37.       
  38.     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;  
  39.     System.out.println(sql);  
  40.     //System.out.println(sql);  
  41.     rs=dbmgr.getQuery(sql);  
  42.     List<Job> list=new ArrayList<Job>();  
  43.     while(rs.next()){  
  44.         Job og=new Job();  
  45.         og.setJobid(rs.getInt("jobid"));  
  46.         og.setJobname(rs.getString("jobname"));  
  47.         og.setOrgid(rs.getString("orgid"));  
  48.         list.add(og);  
  49.           
  50.     }  
  51.     sql="select orgname from ln_org where orgid='"+orgid+"'order by orgid asc";  
  52.     rs=dbmgr.getQuery(sql);  
  53.     String orgname="";  
  54.     while(rs.next()){  
  55.         orgname=rs.getString(1);  
  56.     }  
  57.     request.setAttribute("currentPage", Integer.parseInt(page));  
  58.     request.setAttribute("nextpage", nextpage);  
  59.     request.setAttribute("maxPage", maxPage);  
  60.     request.setAttribute("list", list);  
  61.     request.setAttribute("orgid",orgid);  
  62.     request.setAttribute("orgname",orgname);  
  63.     return mapping.findForward("list");  
  64. }  

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页面中

Java代码  收藏代码
  1. <%  
  2.  int nextpage=(Integer)request.getAttribute("nextpage");  
  3.  int maxPage=(Integer)request.getAttribute("maxPage");  
  4.  int currentPage=(Integer)request.getAttribute("currentPage");  
  5.  int fontpage=0;  
  6.  if(currentPage>1){  
  7.     fontpage=currentPage-1;  
  8. }  
  9.   
  10. %>  

 总结:

 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 0
原创粉丝点击