導航:首頁 > 編程語言 > 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

友情鏈接