概述
在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中配置
<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类型方法:
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 object类型转换为int类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复