导航:首页 > 编程语言 > jspstruts2配置

jspstruts2配置

发布时间:2025-09-25 20:15:22

1. jsp+struts2 上一页1 2 3 4 5 下一页 分页代码

action类中的分页方法如下:

///分页显示
public String ShowUser(){

int pageNow = 1;//希望显示第几页 默认显示第一页
int pageSize = 3;//每页显示多少条记录
int pageCount;//一共有多少页 ——通过计算得到
int rowCount;//一共有多少条记录 ——从数据库查询
int start = (pageNow-1)*pageSize;//第n页的起始查询数据

// 获取总记录数 rowCount
UserDao userDao = new UserDao();
String count=userDao.getList("user", "count(id)", null, null, null).get(0).get("count(id)");
rowCount = Integer.parseInt(count); //将count转成int类型

//计算 pageCount 一共 分 多少页
pageCount =(rowCount+pageSize-1)/pageSize;

//接受用户希望显示的页数(pageNow)
HttpServletRequest request=ServletActionContext.getRequest();
String s_pageNow=request.getParameter("pageNow");

if(s_pageNow!=null){
pageNow =Integer.parseInt(s_pageNow);

if(pageNow>pageCount){
pageNow=pageCount;
}
if(pageNow<1){
pageNow=1;
}
}

System.out.println("showuser中获取到的页数值为"+pageNow);
ServletActionContext.getRequest().setAttribute("pageNow", pageNow);//生成缓存
ServletActionContext.getRequest().setAttribute("pagecount", pageCount);//生成缓存

start = (pageNow-1)*pageSize;
List<Map<String, String>> list= userService.query(start, pageSize);
ServletActionContext.getRequest().setAttribute("list", list);
return "ShowUserSuccess";

}

调用service中的方法如下:

// 分页查询
public List<Map<String, String>> query( int star, int pagsize){//select * from user where username="loginname"
//获取用户name 通过name查询信息
//String userName=(String) ServletActionContext.getRequest().getAttribute("lname");

String start = Integer.toString(star);
String pagesize = Integer.toString(pagsize);

List<Map<String, String>> list = userDao.getList("user", "id,username,password,userage,url", null,start,pagesize);

if(list.size()>0){
System.out.println("进入query中");
return list;
}

return null;
}

界面中控制分页的语句如下:

<a href="userAction!ShowUser"?pageNow=1>首页</a>
<a href="userAction!ShowUser?pageNow=${pageNow-1 }">上一页</a>
<!--var定义 -->
<c:forEach var="i" step="1" begin="1" end="${pagecount }">
<c:choose>
<c:when test="${pageNow eq i }">
[${i }]
</c:when>
<c:otherwise>
<a href="userAction!ShowUser?pageNow=${i }">[${i }]</a>
</c:otherwise>
</c:choose>
</c:forEach>

<a href="userAction!ShowUser?pageNow=${pageNow+1 }" >下一页</a>

Struts中的配置如下:

<package name="user" extends="struts-default">
<action name="userAction" class="action.UserAction" >

<!-- 登陆返回值 -->
<result name="loginSuccess" type="redirect">/userAction!ShowUser</result>
<result name="loginError">/login.jsp</result>
<!-- 分页方法返回值 -->
<result name="ShowUserSuccess">/main.jsp</result>
</action>
</package>

2. struts2 的struts.xml文件怎么配置

<!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
<include file="struts-default.xml"></include>

<!-- package提供了将多个Action组织为一个模块的方式
package的名字必须是唯一的 package可以扩展 当一个package扩展自
另一个package时该package会在本身配置的基础上加入扩展的package
的配置 父package必须在子package前配置
name:package名称
extends:继承的父package名称
abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false
namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器
name:拦截器名称
class:拦截器类路径
-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
<interceptor name="logger" class="com.kay.logger"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="timer"></interceptor-ref>
<interceptor-ref name="logger"></interceptor-ref>
</interceptor-stack>
</interceptors>

<!-- 定义默认的拦截器 每个Action都会自动引用
如果Action中引用了其它的拦截器 默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>

<!-- 全局results配置 -->
<global-results>
<result name="input">/error.jsp</result>
</global-results>

<!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同)
name:action名称
class: 对应的类的路径
method: 调用Action中的方法名
-->
<action name="hello" class="com.kay.struts2.Action.LoginAction">
<!-- 引用拦截器
name:拦截器名称或拦截器栈名称
-->
<interceptor-ref name="timer"></interceptor-ref>

<!-- 节点配置
name : result名称 和Action中返回的值相同
type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher
-->
<result name="success" type="dispatcher">/talk.jsp</result>
<!-- 参数设置
name:对应Action中的get/set方法
-->
<param name="url">http://www.sina.com</param>
</action>
</package>

3. 为什么一配置struts2框架,访问jsp时候就会出现404,

struts2中jsp如果是放在web-inf文件夹下,是不能直接通过客户端访问的。
本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全。
访问方法一:

<jsp:forward page ="/WEB-INF/jsp/test/test.jsp" />
访问方法二:

request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);
配置:
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

4. 如何在jsp页面中使用struts2标签

要在jsp中使用struts2.0的标签,首先要在页面使用taglib指令,将struts2的tld文件导入
<%@taglibprefix="s"uri="/struts-tags"%>

struts2的标签主要分为两大类:

  1. UI标签 这个几乎不怎么用就不介绍了

  2. 非UI标签

    if,elseif和else
    <s:iftest="link_type==1">//只有当test的的值为true时,才会执行if语句块里面的内容
    文字
    </s:if>
    <s:elseiftest="link_type==2">
    图片
    </s:elseif>
    <s:else>
    -----
    </s:else>
    迭代标签的使用
    iterator描述:
    用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。
    <ol>
    <s:iteratorvalue="#request.names"status="stuts">
    <s:iftest="#stuts.odd==true">//判断取出数据的奇偶性
    <li>White<s:property/></li>
    </s:if>
    <s:else>
    <listyle="background-color:gray"><s:property/></li>
    </s:else>
    </s:iterator>
    </ol>
    上述代码的显示效果就是相邻的两行颜色是区分开来的

    URL地址标签,<s:url>用于生成一个URL地址,可以通过URL标签指定的<s:param>
    子元素向URL地址发送请求参数
    <s:urlaction="">
    <s:paramname=""value=""></s:param>
    </s:url>

    超链接<ahref>一般和<s:url>标签一起使用,用于带多个参数。
    <ahref="
    <s:urlaction="">
    <s:paramname=""value=""></s:param>
    <s:paramname=""value=""></s:param>
    <s:paramname=""value=""></s:param>
    </s:url>">
    链接到...
    </a>


    set标签,用于将某个值放入指定的范围内。例如application,session等。
    <s:setname="user"value="userName"scope=”request”/>

    Struts2页面开发中常用标签使用规范:
    2.1.通过<inputname="userName"type="text"class=""size="15">
    往action中传值,action中要有相应的属性,并提供SET/GET方法。
    (在数量少时可以使用request.getParameter(“userName”);)

    2.2.在页面显示action传来的数据,使用property标签。需要显示的数据从action中获得。

    2.3.往action中的实体对象内传值,使用textfield标签。

    2.4.在页面中判断指定值使用<s:if>标签。判断数据从action中获得。

    2.5.在页面中需要循环列表显示的数据使用<s:iterator>标签,列表数据从action中获得。

    2.6.URL地址和超链接可以使用<ahref>和<s:url>,在传多值时建议<ahref>和<s:url>一起使用

阅读全文

与jspstruts2配置相关的资料

热点内容
列王的纷争荣耀升级表 浏览:585
网吧win7共享文件 浏览:674
华为离线下载在哪个文件夹里 浏览:187
安卓手机没有数据线如何远程调试 浏览:882
三星plc编程线怎么连接 浏览:86
jspstruts2配置 浏览:571
32位在哪个文件夹 浏览:810
文件名和扩展名是什么文件类型 浏览:578
cf启动文件在哪个位置 浏览:244
怀孕有什么app比较好用 浏览:112
nginxjsp404 浏览:453
微信突然弹出输入密码 浏览:206
wordpresstimeline 浏览:346
数据库主要系统是什么 浏览:435
编写程序有一分段函数 浏览:775
美版iphone6s各版本 浏览:278
91编程内r角怎么加工准 浏览:528
gps端口检测工具下载 浏览:482
什么app可以储存流量 浏览:41
linux怎么重命名文件 浏览:964

友情链接