在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中。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53public 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中配置
<forward name="list" path="/dtynwebmain/job/joblist.jsp"/>
</action>
在joblist.jsp页面中
1
2
3
4
5
6
7
8
9<% 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类型方法:
2.Integer. toHexString (int i) :以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
3.Integer. toOctalString (int i):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
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类型。
最后
以上就是文艺小熊猫最近收集整理的关于Java object类型转换为int类型的全部内容,更多相关Java内容请搜索靠谱客的其他文章。
发表评论 取消回复