struts2如何通过地址栏往action中传参
共<s:propertyvalue="#session.pageView.totalrecord"/>条记录共<s:propertyvalue="#session.pag...
共<s:property value="#session.pageView.totalrecord"/> 条记录
共<s:property value="#session.pageView.totalpage"/> 页
当前第<s:property value="#session.pageView.currentpage"/>页<br/>
<s:if test="%{#session.pageView.currentpage == 1}">
第一页 上一页
</s:if>
<s:else>
<a href="showInfo.action?page=1">第一页</a>
<a href="showInfo.action?page=<s:property value="%{#session.pageView.currentpage-1}"/>">上一页</a>
</s:else>
<s:if test="%{#session.pageView.currentpage != #session.pageView.totalpage}">
<a href="showInfo.action?page=<s:property value="%{#session.pageView.currentpage+1}"/>">下一页</a>
<a href="showInfo.action?page=<s:property value="#session.pageView.totalpage"/>">最后一页</a>
</s:if>
<s:else>
下一页 最后一页
</s:else>
我像通过这种方法往action中传参 ,也在action中设置了一个私有变量page,也设置了它的get和set方法,当我点击下一页或上一页的时候,参数的值就是传不过去,这是为什么呢?
我在action里是这样写的,虽然能够实现功能,可是这样用到了servlet的API,没有实现解耦:
String pages = ServletActionContext.getRequest().getParameter("page");
int page = Integer.parseInt(pages);
page = (page==0?1:page);
所以我想要用别的方法来实现。 展开
共<s:property value="#session.pageView.totalpage"/> 页
当前第<s:property value="#session.pageView.currentpage"/>页<br/>
<s:if test="%{#session.pageView.currentpage == 1}">
第一页 上一页
</s:if>
<s:else>
<a href="showInfo.action?page=1">第一页</a>
<a href="showInfo.action?page=<s:property value="%{#session.pageView.currentpage-1}"/>">上一页</a>
</s:else>
<s:if test="%{#session.pageView.currentpage != #session.pageView.totalpage}">
<a href="showInfo.action?page=<s:property value="%{#session.pageView.currentpage+1}"/>">下一页</a>
<a href="showInfo.action?page=<s:property value="#session.pageView.totalpage"/>">最后一页</a>
</s:if>
<s:else>
下一页 最后一页
</s:else>
我像通过这种方法往action中传参 ,也在action中设置了一个私有变量page,也设置了它的get和set方法,当我点击下一页或上一页的时候,参数的值就是传不过去,这是为什么呢?
我在action里是这样写的,虽然能够实现功能,可是这样用到了servlet的API,没有实现解耦:
String pages = ServletActionContext.getRequest().getParameter("page");
int page = Integer.parseInt(pages);
page = (page==0?1:page);
所以我想要用别的方法来实现。 展开
展开全部
<%@page contentType="text/html;charset=utf-8"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="query" class="book.dbfunction" scope="page"></jsp:useBean>
<% request.setCharacterEncoding("UTF-8"); %>
<% response.setCharacterEncoding("UTF-8"); %>
<%
int dipage=1;//当前页码数默认为1
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
}
try
{
dipage=Integer.parseInt(pages);
}
catch(Exception e)
{
dipage=1;
}
%>
<html>
<head>
<title>书籍列表</title>
</head>
<body>
<%//查询数据库
ResultSet rs=null;
String str="SELECT * FROM book";
//设置连接
query.connect();
//设置SQL语句
rs=query.select(str);
int countRecord=0;//记录条数
int countPageRecord=0;//每页记录条数
int countPage=0;//总页数
countPageRecord=5;//每页5条记录,要设置每页记录条数就更改这个变量的值
//得到记录的条数
rs.last();
countRecord=rs.getRow();
//得到总页数
if(countRecord%countPageRecord==0)
countPage=countRecord/countPageRecord;
else
countPage=countRecord/countPageRecord+1;
//把记录指针移至当前页第一条记录之前
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
else
rs.absolute((dipage-1)*countPageRecord);
//得到查询结果
out.print("<Table Border align=center>");
out.print("<TR><td colspan=8 align=center class=font>书籍列表</td></tr>");
out.print("<TR>");
out.print("<Td width=50 >"+"书号");
out.print("<Td width=50 >"+"书名");
out.print("<Td width=50 >"+"类型");
out.print("<Td width=50 >"+"作者");;
out.print("<Td width=50 >"+"出版社");
out.print("<Td width=50 >"+"价格");
out.print("<Td width=50 >"+"详细");
out.print("</TR>");
int i=0;
while(rs.next())
{
String bookname=rs.getString("bookname");
String booktype=rs.getString("booktype");
String bookprice=rs.getString("bookprice");
String bookid=rs.getString("bookid");
out.print("<TR>");
out.print("<TD >"+bookid+"</TD>");
out.print("<TD >"+bookname+"</TD>");
out.print("<TD >"+booktype+"</TD>");
out.print("<TD >"+rs.getString("bookwriter")+"</TD>");
out.print("<TD >"+rs.getString("bookpublish")+"</TD>");
out.print("<TD >"+bookprice+"</TD>");
out.print("<TD>");
out.print("<a href=showbook.action?bookid="+bookid+"&bookname="+bookname+"&bookprice="+bookprice+">查看</a>");
out.print("</TD>");
out.print("</TR>") ;
i++;
if(i>=countPageRecord) break; //当前页显示完,则退出循环
}
out.print("<TR><td colspan=8 align=center>");
if(countRecord==0)
out.print("共0条记录");
else if(dipage==1)
out.print("共"+countRecord+"条记录,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录");
else
out.print("共"+countRecord+"条记录,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录,");
if(countRecord==0)
;
else if(dipage==1)//当前是首页
;
else//当前不是首页
{
out.print("<a href=index.jsp?dipage=1>首页</a>,");
out.print("<a href=index.jsp?dipage="+(dipage-1)+">上一页</a>,");
}
if(countRecord==0)
;
else if(dipage==countPage)//当前是末页
;
else//当前不是末页
{
out.print("<a href=index.jsp?dipage="+(dipage+1)+">下一页</a>,");
out.print("<a href=index.jsp?dipage="+countPage+">末页</a>");
}
out.print("</td></tr>");
out.print("</Table>");
query.close();
%>
</body>
</html>
希望我写的这个程序对你有所帮助!~~
<%@page import="java.sql.*"%>
<jsp:useBean id="query" class="book.dbfunction" scope="page"></jsp:useBean>
<% request.setCharacterEncoding("UTF-8"); %>
<% response.setCharacterEncoding("UTF-8"); %>
<%
int dipage=1;//当前页码数默认为1
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
}
try
{
dipage=Integer.parseInt(pages);
}
catch(Exception e)
{
dipage=1;
}
%>
<html>
<head>
<title>书籍列表</title>
</head>
<body>
<%//查询数据库
ResultSet rs=null;
String str="SELECT * FROM book";
//设置连接
query.connect();
//设置SQL语句
rs=query.select(str);
int countRecord=0;//记录条数
int countPageRecord=0;//每页记录条数
int countPage=0;//总页数
countPageRecord=5;//每页5条记录,要设置每页记录条数就更改这个变量的值
//得到记录的条数
rs.last();
countRecord=rs.getRow();
//得到总页数
if(countRecord%countPageRecord==0)
countPage=countRecord/countPageRecord;
else
countPage=countRecord/countPageRecord+1;
//把记录指针移至当前页第一条记录之前
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
else
rs.absolute((dipage-1)*countPageRecord);
//得到查询结果
out.print("<Table Border align=center>");
out.print("<TR><td colspan=8 align=center class=font>书籍列表</td></tr>");
out.print("<TR>");
out.print("<Td width=50 >"+"书号");
out.print("<Td width=50 >"+"书名");
out.print("<Td width=50 >"+"类型");
out.print("<Td width=50 >"+"作者");;
out.print("<Td width=50 >"+"出版社");
out.print("<Td width=50 >"+"价格");
out.print("<Td width=50 >"+"详细");
out.print("</TR>");
int i=0;
while(rs.next())
{
String bookname=rs.getString("bookname");
String booktype=rs.getString("booktype");
String bookprice=rs.getString("bookprice");
String bookid=rs.getString("bookid");
out.print("<TR>");
out.print("<TD >"+bookid+"</TD>");
out.print("<TD >"+bookname+"</TD>");
out.print("<TD >"+booktype+"</TD>");
out.print("<TD >"+rs.getString("bookwriter")+"</TD>");
out.print("<TD >"+rs.getString("bookpublish")+"</TD>");
out.print("<TD >"+bookprice+"</TD>");
out.print("<TD>");
out.print("<a href=showbook.action?bookid="+bookid+"&bookname="+bookname+"&bookprice="+bookprice+">查看</a>");
out.print("</TD>");
out.print("</TR>") ;
i++;
if(i>=countPageRecord) break; //当前页显示完,则退出循环
}
out.print("<TR><td colspan=8 align=center>");
if(countRecord==0)
out.print("共0条记录");
else if(dipage==1)
out.print("共"+countRecord+"条记录,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录");
else
out.print("共"+countRecord+"条记录,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录,");
if(countRecord==0)
;
else if(dipage==1)//当前是首页
;
else//当前不是首页
{
out.print("<a href=index.jsp?dipage=1>首页</a>,");
out.print("<a href=index.jsp?dipage="+(dipage-1)+">上一页</a>,");
}
if(countRecord==0)
;
else if(dipage==countPage)//当前是末页
;
else//当前不是末页
{
out.print("<a href=index.jsp?dipage="+(dipage+1)+">下一页</a>,");
out.print("<a href=index.jsp?dipage="+countPage+">末页</a>");
}
out.print("</td></tr>");
out.print("</Table>");
query.close();
%>
</body>
</html>
希望我写的这个程序对你有所帮助!~~
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
因为你在a标签的href里没有写全路径,必须加上“工程名/showinfo.action?page=2”,试试看
问题补充:
那就在action的类写上个成员变量 private String page;
并且给这个成员变量写上set,get方法,然后就能在action的方法里获得page的值了,这样用
int page1=Integer.parseInt(page);
注意:成员变量的page要和地址栏里的page名字一样,这样才能把地址栏里page的值赋值给成员变量的page,别忘了给成员变量写上get方法。
问题补充:
那就在action的类写上个成员变量 private String page;
并且给这个成员变量写上set,get方法,然后就能在action的方法里获得page的值了,这样用
int page1=Integer.parseInt(page);
注意:成员变量的page要和地址栏里的page名字一样,这样才能把地址栏里page的值赋值给成员变量的page,别忘了给成员变量写上get方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果想通过地址栏获得参数的值,需要通过request.getParameter(“page”)方法来获得。另外,不建议用page,推荐用page_no或者page_num.以避免关键词冲突。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<s:url><s:param>这两个标签应该是很好用的action它不像servlet,它的参数是存在actionContext里的,url参数可能并不会被加到actionContext
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询