久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

struts2增刪改查,struts2分頁查詢(五篇材料)

時間:2019-05-12 01:55:28下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《struts2增刪改查,struts2分頁查詢》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《struts2增刪改查,struts2分頁查詢》。

第一篇:struts2增刪改查,struts2分頁查詢

Struts2增刪改查。Struts2分頁查詢。

1.Index.jsp 現實新聞 2.all.jsp ”>刪除 ”>更改該信息

3.分頁查詢的spage.jsp ”>刪除 ”>更改該信息

上一頁

下一頁

添加

4、updatenews.jsp

編號為:


主體:
提交時間:
攥寫人:


返回查詢頁面

5、addnews.jsp

6、配置文件Struts.xml

“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”

“http://struts.apache.org/dtds/struts-2.0.dtd”>

/ok.jsp

/fail.jsp

/ok.jsp

/fail.jsp

/all.jsp

find_all

/updatenews.jsp

find_all

/fail.jsp

find_all

/spage.jsp

/fail

/addnews.jsp

/ok.jsp

newDao.java

(面向數據庫的操作)

package dao;

import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import db.DBCon;import vo.News;

public abstract class NewsDAO { private DBCon db;private List result = new ArrayList();

public NewsDAO(){

db = new DBCon();} public List spage(int pageSize,int nowPage){

int count=0;

int countPage;

if(pageSize>0&&nowPage>0){

String sql0=“select count(*)as pageCount from news”;

ResultSet rs0=db.do_query(sql0);

try {

if(rs0.next())count=rs0.getInt(“pageCount”);

countPage=(count%pageSize==0)?(count/pageSize):(count/pageSize+1);

if(nowPage<1)

nowPage=2;

else if(nowPage>countPage)

nowPage=countPage;

String sql=“select * from news order by id limit ”+(nowPage*pageSize-pageSize)+“,”+pageSize;

ResultSet rs=db.do_query(sql);

try {

while(rs.next()){

News n = new News();

n.setId(rs.getInt(“id”));

n.setTitle(rs.getString(“title”));

n.setBody(rs.getString(“body”));

n.setAddtime(rs.getString(“addtime”));

n.setAddpeople(rs.getString(“addpeople”));

result.add(n);

}

} catch(SQLException e1){

// TODO Auto-generated catch block

e1.printStackTrace();

}

} catch(SQLException e){

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return result;} public List find_all(){ String sql = “select * from news”;

ResultSet rs = db.do_query(sql);try {

while(rs.next()){

News n = new News();

n.setId(rs.getInt(“id”));

n.setTitle(rs.getString(“title”));

n.setBody(rs.getString(“body”));

n.setAddtime(rs.getString(“addtime”));

n.setAddpeople(rs.getString(“addpeople”));

result.add(n);

} } catch(SQLException e){

// TODO Auto-generated catch block

e.printStackTrace();} return result;} public List sid(int id){

//通過主鍵查詢以更新

String sql = “select * from news where id=” + id;System.out.println(“通過主鍵查詢id為”+id+“的記錄”);ResultSet rs = db.do_query(sql);try {

while(rs.next()){

News n = new News();

n.setId(rs.getInt(“id”));

n.setTitle(rs.getString(“title”));

n.setBody(rs.getString(“body”));

n.setAddtime(rs.getString(“addtime”));

n.setAddpeople(rs.getString(“addpeople”));

result.add(n);

} } catch(SQLException e){

// TODO Auto-generated catch block

e.printStackTrace();} return result;} public int delete(int id){ int res = 0;String sql = “delete from news where id=” + id;

res = db.do_update(sql);

System.out.print(“已經刪除id為”+id+“的記錄”);

return res;} public int insert(News news){

int res = 0;

String sql = “insert into news(id,title,body,addtime,addpeople)values('”+ news.getId()+ “','”+ news.getTitle()

+ “','”+ news.getBody()+ “','”+ news.getAddtime()+ “','”+ news.getAddpeople()+ “')”;

res = db.do_update(sql);

System.out.print(sql);

return res;} public int updatenews(News news){

int res = 0;

String sql =“update news set title='”+news.getTitle()+“',body='”

+news.getBody()+“',addtime='”+news.getAddtime()

+“',addpeople='”+news.getAddpeople()+“'where id=”+news.getId();

System.out.print(sql);

res = db.do_update(sql);

return res;} }

News.java(實體news)

package vo;

public class News { private int id;private int p;private String page;

private String title;private String body;private String addtime;private String addpeople;

public int getP(){

return p;}

public void setP(int p){ this.p = p;} public String getPage(){ return page;} public void setPage(String page){ this.page = page;} public int getId(){ return id;} public void setId(int id){ this.id = id;} public String getTitle(){ return title;} public void setTitle(String title){ this.title = title;} public String getBody(){ return body;} public void setBody(String body){ this.body = body;} public String getAddtime(){ return addtime;} public void setAddtime(String addtime){ this.addtime = addtime;}

}

public String getAddpeople(){ return addpeople;} public void setAddpeople(String addpeople){ this.addpeople = addpeople;} newsAction 與鏈接數據庫的代碼,自己根據配置文件和newDao.Java來寫吧

加油啊

第二篇:Struts2介紹

Struts2集成指南

關于Struts2 Struts是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是Jakarta項目中的一個子項目,并在2004年3月成為ASF的頂級項目。它通過采用Java Servlet/JSP技術,實現了基于Java EE Web應用的Model-View-Controller〔MVC〕設計模式的應用框架〔Web Framework〕,是MVC經典設計模式中的一個經典產品。

Struts,a history 在Java EE的Web應用發展的初期,除了使用Servlet技術以外,普遍是在JavaServer Pages(JSP)的源代碼中,采用HTML與Java代碼混合的方式進行開發。因為這兩種方式不可避免的要把表現與業務邏輯代碼混合在一起,都給前期開發與后期維護帶來巨大的復雜度。為了擺脫上述的約束與局限,把業務邏輯代碼從表現層中清晰的分離出來,2000年,Craig McClanahan采用了MVC的設計模式開發Struts。后來該框架產品一度被認為是最廣泛、最流行JAVA的WEB應用框架。

Craig McClanahan 2006年,WebWork與Struts這兩個優秀的Java EE Web框架(Web Framework〕的團體,決定合作共同開發一個新的,整合了WebWork與Struts優點,并且更加優雅、擴展性更強的框架,命名為“Struts 2”,原Struts的1.x版本產品稱為“Struts 1”。

至此,Struts項目并行提供與維護兩個主要版本的框架產品——Struts 1與Struts 2。Struts1 vs.Struts2 侵入性

Struts 1 在編程方面是面向抽象類編程,而不是面向接口編程。Struts 1要求自定義Action 類繼承一個特定的抽象基類Action。另一方面,Struts 1的 Action 依賴于 Servlet API,因為Struts 1 Action 的execute 方法中有HttpServletRequest 和HttpServletResponse 方法。例如 e.g.public class LogonAction extends Action {

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){

} }

Struts 2 Action 類可以實現一個Action接口,也可以實現其他接口,甚至不實現任何接口。這使得可選的和定制的服務成為可能。e.g.public class ExampleAction {

public String doSomething(){

return “success”;} }

線程模式

Struts 1 Action類 是單例模式并且必須是線程安全的,因為在web容器中,僅有Action類 的一個實例來處理所有的請求。

Struts2 Web容器為每一個請求產生一個Action類實例,因此沒有線程安全問題。可測試性

Struts1 由于對Servlet API的依賴,使得針對于自定義Action類的測試變得復雜。

Struts2 由于自定義Action可以為POJO,所以可以向測試一個POJO一樣來測試Action類。

請求參數封裝

Struts1 使用ActionForm 對象封裝用戶的請求參數,所有的 ActionForm 必須繼承一個基類:ActionForm。普通的JavaBean 不能用作ActionForm,并且需要在配置文件中定義ActionForm。e.g.public class LogonForm extends ActionForm {

private String userpassword;

private String username;}

Struts2 直接使用Action屬性來封裝用戶請求屬性,避免了開發者需要大量開發ActionForm類的煩瑣,實際上,這些屬性還可以是包含子屬性的 Rich對象類型。e.g.public class ExampleAction {

private String responseMessage;private String requestMessage;

public String getResponseMessage(){

return responseMessage;}

public void setResponseMessage(String responseMessage){

this.responseMessage = responseMessage;}

public String getRequestMessage(){

return requestMessage;

} } public void setRequestMessage(String requestMessage){ } this.requestMessage = requestMessage;public String doSomething(){

} setMessage(“Hi, ” + getRequestMessage());return “success”;EL Struts1 整合了 JSTL,因此可以使用JSTL 表達式語言。JSTL有基本對象圖遍歷,但在對集合和索引屬性的支持上則功能不強。在向視圖綁定值時,Struts1 使用標準JSP 機制把對象綁定到視圖頁面。

Struts2 Struts 2 可以使用JSTL,但它整合了一種更強大和靈活的表達式語言:OGNL(Object Graph Notation Language),因此,Struts 2 下的表達式語言功能更加強大。在向視圖綁定值時,Struts2 使用“ValueStack ”技術,使標簽庫能夠訪問值,而不需要把對象和視圖頁面綁定在一起。

校驗框架

Struts1 Struts1 支持在 ActionForm 重寫validate 方法中手動校驗,或者通過整合 Commons-validator 框架來完成數據校驗。

Struts2 Struts 2 支持通過重寫validate方法進行校驗,也支持整合XWork 校驗框架進行校驗。Struts2 architacture

名詞約定

凡是代碼、配置文件、IDE中出現的名詞,均采用英文原稱。

Roadmap 本文檔的目標是,幫助讀者在Eclipse中將Struts2集成至一個嶄新的Dynamic Web Project。集成步驟大致如下:配置Struts2的代碼環境-> 在web.xml中加入Struts2功能-> 測試Struts2。文檔目標達成的標志是:頁面請求能夠通過Struts2的Action Mapping成功轉發,并且基于Java的Struts2驗證框架能夠生效。

集成步驟

引入Struts2相關的jar文件

Struts2 jars ? ? ? ? ? ? ? ? ? ? commons-fileupload-1.2.2.jar commons-io-2.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar freemarker-2.3.16.jar javassist.jar jstl-1.2.jar ognl-3.0.1.jar struts2-core-2.2.3.jar xwork-core-2.2.3.jar 加入build path 將以上10個jar文件,拷貝至WebContent/WEB-INF/lib下:

對于Web Dynamic Project,一般情況下,當你向lib目錄下copy了jar文件,eclipse會自動將jar文件加入build path下的名為Web App Libraries的Library。請確認在工程下出現了名為Web App Libraries的Library。如果有,說明這些jar文件已經被添加至build path了:

如果在工程目錄下找不到名為Web App Libraries的Library,說明jar文件沒有被添加至build path,需要進行手動添加。首先進入build path設置界面,選中Libraries 頁,并點擊Add JARs:

在JAR Selection窗口中,選中lib下所有的jar文件。選中后點擊OK:

你將看到被選中的jar文件已經被添加至build path:

在工程中會出現一個名為Referenced Libraries的Libraries。這說明jar文件已經被添加至build path:

以上兩種方法都可以將jar文件添加至build path,它們的效果是一樣的。

配置web.xml 添加filter 在web.xml中添加一個filter:

struts2

org.apache.struts2.dispatcher.FilterDispatcher

filter-name表示filter的名字,你可以任意決定這個名字。filter-class表示使用哪個類作為filter,從這個類的全稱來判斷,可以發現FilterDispatcher是Struts2提供的一個類。它是Struts2轉發請求的起點。在web.xml中添加一個filter-mapping:

struts2

/*

filter-mapping用來映射url和filter的映射關系。filter-name表示filter的名字,這個名字必須和之前filter聲明中的filter-name一致。url-pattern表示哪些格式的url會被此filter濾中。/*表示在此web應用域名下,所有的地址都會被filter濾中,換言之,所有的http請求都會通過Struts2進行轉發。

filter的作用

通過以上的配置,FilterDispatcher和url與filter-name聯系在了一起。

由于在web容器中注冊了FilterDispatcher這個filter,Struts2可以收到所有http://localhost:8080/tyland-b2b 的http請求。隨后,FilterDispatcher會根據我們定義的action-mapping規則,將請求分發到指定的action類以及它的攔截器棧。最后,Struts2按照action-mapping規則,將后臺計算的結果返回給指定頁面。籠統地來說,Struts2就是這樣工作的,所以說,FilterDispatcher是Struts2工作的入口。

編寫代碼,測試Struts2 Struts2的環境已經配置好了,基于action-mapping的轉發機制已經可以運行了。為了證明這一點,請編寫一些測試jsp頁面和java代碼。

在編寫代碼的過程中,請確保代碼文件的位置如下圖所示:

代碼清單如下:

Java代碼

UserVO.java package com.tyland.b2b.vo;

// 一個Value Object(Data Model),用來存放用戶名、密碼 public class UserVO {

private String username;private String password;

// 成員變量password的getter方法。

// 在Strtus2中,用來在頁面和服務器間傳值的Value Object必須有getter方法

public String getPassword(){

return password;

} } // 成員變量password的setter方法。

// 在Strtus2中,用來在頁面和服務器間傳值的Value Object必須有setter方法 public void setPassword(String password){ } this.password = password;// 同password

public String getUsername(){ } return username;// 同password

public void setUsername(String username){ } this.username = username;BaseAction.java package com.tyland.b2b.web.base;

import com.opensymphony.xwork2.ActionSupport;

// 為了代碼的靈活性和可擴展性,請聲明一個BaseAction基類

// BaseAction繼承Struts2的ActionSupport,因為我們想使用Struts2的一些額外幫助。// 對于ActionSupport的繼承不是必須的

public class BaseAction extends ActionSupport {

private static final long serialVersionUID = ***74952195L;} UserAction.java package com.tyland.b2b.web;

import com.tyland.b2b.vo.UserVO;import com.tyland.b2b.web.base.BaseAction;

// 自定義的Action類,繼承BaseAction // 由于繼承了ActionSupport,我們可以使用Struts2默認的action方法execute()// 由于繼承了ActionSupport,我們可以使用Struts2默認的校驗方法validate()public class UserAction extends BaseAction {

private static final long serialVersionUID =-7***3684190L;

// 用來在頁面和服務器之間傳遞用戶名、密碼的Value Object。變量名任意。

private UserVO userVO;

執行。// 用來在頁面和服務器之間傳遞message變量。名稱任意。private String message;//用來在頁面和服務器之間傳遞sayHiTo變量。名稱任意。private String sayHiTo;// 用來傳值的變量必須有getter方法 public UserVO getUserVO(){ return userVO;}

//用來傳值的變量必須有setter方法

public void setUserVO(UserVO userVO){ } this.userVO = userVO;public String getMessage(){ } return message;public void setMessage(String message){ } this.message = message;public String getSayHiTo(){ } return sayHiTo;public void setSayHiTo(String sayHiTo){ } this.sayHiTo = sayHiTo;// Override聲明說明這個方法復寫或實現了父類或接口方法。

// 如action-mapping中不顯示指定別的方法,struts2會將execute()作為默認的action方法// 返回的SUCCESS常量,來自ActionSupport,值為“success”。

// action-mapping會根據不同的返回值采取不同的轉發或頁面跳轉動作。@Override

public String execute()throws Exception {

} System.out.println(“******execute******”);System.out.println(userVO.getUsername()+ “ logins”);return SUCCESS;

// 在Struts2執行execute()之前,會先執行validateExecute()進行用戶輸入驗證 // 這個方法名必須符合Struts2驗證框架所規定的命名規范 public void validateExecute(){

}

} System.out.println(“******validateExecute******” + userVO.getUsername());if(null == userVO.getUsername()|| userVO.getUsername().length()< 5){ this.addFieldError(“username”, “USERNAME ERROR”);} if(null == userVO.getPassword()|| userVO.getPassword().length()< 5){ this.addFieldError(“password”, “PASSWORD ERROR”);} // 一個自定義方法。通過在action-mapping中的設置,可以實現使用POJO的自定義服務配置 public String sayHi()throws Exception {

} System.out.println(“say hi to ” + getSayHiTo());return SUCCESS;// 符合驗證框架命名規范的、真對于sayHi()的驗證方法 public void validateSayHi(){

} System.out.println(“******validateSayHi******” + getSayHiTo());if(null == getSayHiTo()|| getSayHiTo().length()< 5){ this.addFieldError(“sayHiTo”, “SAYHITO ERROR”);} ExampleAction.java package com.tyland.b2b.web;

import com.tyland.b2b.web.base.BaseAction;

public class ExampleAction extends BaseAction {

private static final long serialVersionUID =-***7281L;

private String message;private String sayHiTo;

public String getMessage(){

return message;}

public void setMessage(String message){

this.message = message;}

public String getSayHiTo(){

return sayHiTo;}

} public void setSayHiTo(String sayHiTo){ } this.sayHiTo = sayHiTo;public String finish(){

} System.out.println(“example finished”);setMessage(getSayHiTo());return SUCCESS;JSP代碼

index.jsp <%@ page language=“java” contentType=“text/html;charset=UTF-8”

pageEncoding=“UTF-8”%>

<%@ taglib uri = “http://java.sun.com/jsp/jstl/core” prefix = “c” %>

Hello World

第三篇:Struts2試題

Struts2 試題

1.struts2的執行流程?

客戶端提交一個HttpServletRequest請求(action或JSP頁面)

請求被提交到一系列Filter過濾器,如ActionCleanUp和FiterDispatcher等

FilterDispatcher是Struts2控制器的核心,它通常是過濾器鏈中的最后一個過濾器 詢問ActionMapper是否需要調用某個action來處理

如果ActonMapper據誒的那個需要調用某個A傳統,FilterDispatcher則把請求教到ActionProxy,由其進行處理

ActionProxy通過Configuration Manager詢問框架配置文件,找到需要調用的Action類 ActionProxy創建一個ActionInvocation實例,而ActionInvocation通過代理模式調用action Action執行完畢后,返回一個result字符串,此時再按相反的順序通過Interceptor攔截器 最后ActionInvocation負責根據struts配置文件中配置的result元素,找到與返回值對應的result

2.struts2的web里需要配置什么?

1. 2. 3.struts2 4. 5.org.apache.struts2.dispatcher.FilterDispatcher 6. 7. 8. 9. 10.struts2 11./* 12.

3.struts.xml文件哪個常量可以實現不用重新啟動服務就可以得到反饋? ?

4.struts中的package的作用是什么?namespace可以為空嗎?如果namespace為空會意味著什么呢?

標識

可以、Timmer

如果沒寫,說明該包為默認空間 只要敲index沒有精確對應的package都交給namespackage 如果還沒有就崩潰

5.Action 的實現通集成常用那種方法? 一種是直接實現自己的Action 另一種是實現Action的接口 繼承ActionSupport

6.路徑設置用什么路徑,絕對還是相對? 都可以

7.通配符有幾種?要遵循什么原則? {1}

方法名

8.Action的屬性?

path屬性:指定請求訪問Action的路徑

type屬性:指定Action的完整類名

name屬性:指定需要傳遞給Action的ActionForm Bean scope屬性:指定ActionForm Bean的存放范圍

validate屬性:指定是否執行表單驗證

input屬性:指定當表單驗證失敗時的轉發路徑。

元素還包含一個子元素,它定義了一個請求轉發路徑。

9.用于讀取資源文件,實現國際化的Struts2的標簽()。

10.一下關于struts的描述中,不正確的是(D)struts 是一個基于JAVA EE的MVC struts2的框架配置文件是struts-configxml struts2的控制組建核心包括核心控制和業務控制器

在struts中解決中文亂碼可以通過修改struts。I18n。encoding的值為GBK來實現 11.不屬于Struts2的動作類的常量返回值的是(C)

A.success

B.input

C.never

D.login 12.一下不屬于Struts2動作執行的結果類型是(A)a.action b.redirect c.redirectAction d.dispatcher 13.在struts.xml中。假如在一個package中沒有配置namespace,那么在其中配置一個Action名字叫做login,它的result是這樣配置的/login.jsp,已知在此配置文件中還有另一個name為user的package其中也有一個Action名字為login,它的result是這樣配置的/loginUser.jsp那么在以下什么情況下將能訪問到login.jsp A A.在根路徑后輸入/login B.在根路徑后輸入/user/login C.在根路徑后輸入/login/user D.在根路徑后輸入/abc/login

14.正規開發中,在使用struts2時定義Action使用哪種方式。B A.直接定義Action類。B.從ActionSupport繼承。C.從Action繼承。D.實現Action接口。

15.不同的線程在調用Action時創建幾個Action實例。C A.1個 B.2個

C.每個線程創建1個。D.可以自定義配置。

16.struts2的體系結構主要包括那幾個部分(A)A.模型層

B.struts控制器組件 C。struts配置文件 D。struts標簽庫

17.struts提供了Action接口定義了5個標準字符串常量,不包括的有(C)A SUCCESS

B NONE C REG D LOGIN 18.struts中數據驗證失敗時,通過(B)標簽顯示錯誤信息。A

B

C

D

19.列舉出action執行結果類型,并說明用途。

默認結果類型是dispatcher chain:Action鏈式處理的結果類型,也就是將結果轉發到這個action中。dispatcher:用于整合JSP的結果類型

redirect:實際上dispatcher和redirect的區別就是在于轉發和重定向的區別。redirect-action:重定向action

20.簡述struts2文件上傳的方法。

Commons FileUpload通過將HTTP的數據保存到臨時文件夾,然后Struts使用fileUpload攔截器將文件綁定到Action的實例中。從而我們就能夠以本地文件方式的操作瀏覽器上傳的文件。

21.在struts2標簽內部 能否使用el表達式?

不可

22.struts2中result-type的chain和redirectAction的區別

chain,它是一個璉式的,是從一個Action轉發另外一個Aciton redirectAction,是從新請求一個Action

23.能否取到Httpsession的值 不可

24.action的name里邊寫的名字是什么地方用的? From 表單action引用

25.action的class里面寫的是什么? Action相應類的詳細路徑

26.action的extends里面調用的是什么?

從另外一個包繼承、相當于擁有即承包的所有配置

27.如果不寫action的后面mothod,默認的調用的方法是什么,如果寫的話,寫的時候有什么需要注意的?

不寫會默認調用最上面的方法

28.輸出值的strtus標簽是什么?

s:property

28.循環的struts標簽是什么?

s:iterator

29.判斷的strtuts標簽是什么?

s:if

30.顯示文本的strtuts標簽是什么?

31.要調用struts標簽需要導入什么? <%@taglib uri=“/struts-tags” prefix=“s”%>

32.如果需要調用sc:datetimepicker需要導入什么,sc代表的是什么意思?

33.中的s代表的是什么,這個標簽是干什么用的?

獲取前臺文本的值

34.請簡述前臺提交后是如何到達后臺action的。

通過from表單action找到struts配置文件相應action的類 再去找相應action類里的方法

第四篇:struts2課件

—高級軟件人才實作培訓專家!Struts2的啟動配置在struts1.x中,struts框架是通過Servlet啟動的。在struts2中,struts框架是通過Filter啟動的。他在web.xml中的配置如下:struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2/*在FilterDispatcher的init()方法中將會讀取類路徑下默認的配置文件struts.xml完成初始化操作。注意:struts2讀取到struts.xml的內容后,會將內容封裝進javabean對象并存放在內存中,對于用戶每次請求的處理將使用內存中的數據,而不是每次請求都讀取struts.xml文件

—高級軟件人才實作培訓專家!Struts2的配置文件Struts2默認的配置文件為struts.xml,FilterDispatcher過濾器在初始化時將會在WEB-INF/classes下尋找該文件,該文件的配置模版如下:

—高級軟件人才實作培訓專家!第一個Struts2應用Struts2默認的配置文件為struts.xml,FilterDispatcher過濾器在初始化時將會在WEB-INF/classes下尋找該文件,該文件的配置模版如下:

/WEB-INF/page/hello.jsp —高級軟件人才實作培訓專家!第一個Struts2應用例子中使用到的cn.itcast.action.HelloWorldAction類如下:package cn.itcast.action;public class HelloWorldAction{private String message;public String getMessage(){return message;}public void setMessage(String message){this.message = message;}public String execute()throws Exception{this.message = “我的第一個struts2應用”;return “success”;}} 2

—高級軟件人才實作培訓專家!第一個Struts2應用例子中使用到的/WEB-INF/page/hello.jsp如下:<%@ page language=“java” pageEncoding=“UTF-8”%>第一個struts2應用${message }

第五篇:Struts2習題

Struts2習題1 1.struts中的package的作用是什么?namespace可以為空嗎?如果namespace為空會意味著什么呢?

標識、可以、如果沒寫,說明該包為默認空間 2.Action 的實現通集成常用那種方法? 一種是直接實現自己的Action 另一種是實現Action的接口 繼承ActionSupport 3.不屬于Struts2的動作類的常量返回值的是(C)

A.success

B.input

C.never

D.login 4.以下不屬于Struts2動作執行的結果類型是(A)a.action b.redirect c.redirectAction d.dispatcher 5.在struts.xml中。假如在一個package中沒有配置namespace,那么在其中配置一個Action名字叫做login,它的result是這樣配置的/login.jsp,已知在此配置文件中還有另一個name為user的package其中也有一個Action名字為login,它的result是這樣

配置的/loginUser.jsp那么在以下什么情況下將能訪問到login.jsp

A A.在根路徑后輸入/login B.在根路徑后輸入/user/login C.在根路徑后輸入/login/user D.在根路徑后輸入/abc/login 6.正規開發中,在使用struts2時定義Action使用哪種方式。B A.直接定義Action類。B.從ActionSupport繼承。C.從Action繼承。D.實現Action接口。

7.不同的線程在調用Action時創建幾個Action實例。C A.1個 B.2個

C.每個線程創建1個。D.可以自定義配置。

8.struts提供了Action接口定義了5個標準字符串常量,不包括的有(C)A SUCCESS

B NONE C REG D LOGIN

9.列舉出action執行結果類型,并說明用途。

默認結果類型是dispatcher chain:Action鏈式處理的結果類型,也就是將結果轉發到這個action中。

dispatcher:用于整合JSP的結果類型

redirect:實際上dispatcher和redirect的區別就是在于轉發和重定向的區別。

redirect-action:重定向action 10.struts2中result-type的chain和redirectAction的區別 chain,它是一個璉式的,是從一個Action轉發另外一個Aciton redirectAction,是從新請求一個Action 11.action的class里面寫的是什么? Action相應類的詳細路徑

12.action的extends里面調用的是什么?

從另外一個包繼承、相當于擁有即承包的所有配置

13.如果不寫action的后面mothod,默認的調用的方法是什么,如果寫的話,寫的時候有什么需要注意的?

不寫會默認調用最上面的方法

14.輸出值的strtus標簽是什么?

s:property

15.循環的struts標簽是什么?

s:iterator

15.判斷的strtuts標簽是什么?

s:if

16.顯示文本的strtuts標簽是什么?

17.請簡述前臺提交后是如何到達后臺action的。

通過form表單action找到struts配置文件相應action的類 再去找相應action類里的方法

Struts2習題2

一、填空題

1.Struts2框架由___________和___________框架發展而來。(Struts&WebWork)2.Struts2以___________為核心,采用___________的機制來處理用戶的請求。(WebWork,攔截器)

3.Struts2中的控制器類是一個普通的___________。Class或填過濾器類

二、選擇題

1.不屬于Action接口中定義的字符串常量的是___________。B A.SUCCESS B.FAILURE

C.ERROR D.INPUT 2.在控制器類中一般需要添加相應屬性的___________和___________。AC A.setter方法 B.as方法 C.getter方法 D.is方法 3.控制器需要在___________配置文件中進行配置。B A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 4.不屬于Struts 2表單標簽庫的是___________。D A. B. C. D.

<label id="11616"></label>