第一篇:Struts2一個Action內包含多個請求處理方法
Struts2一個Action內包含多個請求處理方法
Struts2一個Action內包含多個請求處理方法的處理,method的使用方法,struts2中的路徑問題,通配符映射
struts2的關于method=“{1}“意思詳解
====== name= ”Login_* “ 代表這個action處理所有以Login_開頭的請求 method= ”{1} “ 根據前面請求Login_methodname,調用action中的以methodname命名的方法 class= ”mailreader2.Login “ action的類名稱
如jsp文件中請求Login_validateUser的action名稱,根據上面配置,調用action類mailreader2.Login類中方法validateUser()又如:
對于Login_update請求,將會調用mailreader2.Login的update()方法。它的用法同webwork中的!符號的作用,相當于是一個通配符。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Struts2 學習筆記4--Action Method--接收參數 文章分類:Java編程 struts2中的路徑問題
注意:在jsp中”/”表示tomcat服務器的根目錄,在struts.xml配置文件中”/”表示webapp的根路徑,即MyEclipse web項目中的WebRoot路徑。總結:
struts2中的路徑問題是根據action的路徑而不是jsp路徑來確定,所以盡量不要使用相對路徑。
雖然可以用redirect方式解決,但redirect方式并非必要。
解決辦法非常簡單,統一使用絕對路徑。(在jsp中用request.getContextRoot方式來拿到webapp的路徑)
或者使用myeclipse經常用的,指定basePath。Action Method 配置:
Action執行的時候并不一定要執行execute方法
1、可以在配置文件中配置Action的時候用method=來指定執行哪個方法(前者方法)
2、也可以在url地址中動態指定(動態方法調用DMI)(推薦)(后者方法)/user/userAdd“>添加用戶
/user/user!add“>添加用戶
前者會產生太多的action,所以不推薦使用。(注:<% String context = request.getContextPath();%>)再給個案例,大概介紹!使用動態調用DMI的方法,即通過!+方法名的指定方法: UserAction.java import com.opensymphony.xwork2.ActionContext;import java.util.Map;public class UserAction { private String userName;private String password;
public String getUserName(){ return userName;} public void setUserName(String userName){ this.userName = userName;} public String getPassword(){ return password;} public void setPassword(String password){ this.password = password;} public String execute(){ if(!userName.equals(”aa“)||!password.equals(”aa“)){ return ”error“;}else{ Map session=(Map)ActionContext.getContext().getSession();session.put(”userName“, userName);return ”success“;} }
public String loginOther(){ if(!userName.equals(”bb“)||!password.equals(”bb“)){ return ”error“;}else{ Map session=(Map)ActionContext.getContext().getSession();session.put(”userName“, userName);return ”success“;} } }
struts.xml
login_welcome.jsp <%@ page language=”java“ import=”java.util.*“ pageEncoding=”utf-8“%> <%@ taglib uri=”/struts-tags“ prefix=”s“ %>
第二篇:struts2 從一個action 跳轉到另一個action的兩種方法(本站推薦)
從action1直接跳轉到action2,有兩種方法:
1.需要保存前一個action的屬性信息時使用,保存住action1的request對象:
Struts.xml
Java代碼
1.
2. 3. 7.
[java] view plain copy
print?
1. 2.
3. 7.
action1
Java代碼
1.public class StrAction1 {
2.String a =“liminhappygirl”;3.public String getA(){ 4.return a;
5.}
6.public void setA(String a){ 7.this.a = a;8.}
9.public String sa1(){
10.HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);11.request.setAttribute(“limin”, “happygirl”);12.System.out.println(“sal已經執行”);13.return “sa2”;14.} 15.16.}
[java] view plain copy
print?
1.public class StrAction1 {
2.String a =“liminhappygirl”;3.public String getA(){ 4.return a;5.}
6.public void setA(String a){ 7.this.a = a;8.}
9.public String sa1(){
10.HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);11.request.setAttribute(“limin”, “happygirl”);12.System.out.println(“sal已經執行”);13.return “sa2”;14.} 15.16.}
action2
Java代碼
1.public class StrAction2 { 2.public String sa2(){
3.HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);4.//當type=“chain” 時能保存住request對象
5.System.out.println(request.getAttribute(“limin”));6.return Action.SUCCESS;7.} 8.}
[java] view plain copy
print?
1.public class StrAction2 {
2.public String sa2(){
3.HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);4.//當type=“chain” 時能保存住request對象
5.System.out.println(request.getAttribute(“limin”));6.return Action.SUCCESS;7.} 8.}
第三篇:Struts2國際化與亂碼不同的方法處理
Struts2國際化
開發工具:MyEclipse
首先當然是建項目啦~
我來說明一下文件的用處:
Messages_en.properties 是存放的是英文屬性的
Messages_zh.properties 是存放的是中文屬性的
Messages.properties 是國際化一定要的
也可以在struts.xml里寫
小小的國際化就算完成啦~
試試:
在index.jsp加入這段
<%=ServletActionContext.getContext().getLocale()%> 這可以看到你現在IE用的是什么語言
(記得載入包)
<%@page import=“org.apache.struts2.ServletActionContext”%> <%@ taglib uri=“/struts-tags” prefix=“s”%>
運行后
亂碼的問題:
在這里我沒有修改項目的編碼 和Messages_zh.properties的編碼,也沒有在xml文件里寫其它修改編碼的代碼 也沒有用jdk里的轉碼文件~ 都還是默認的(ISO-88589-1)
就只有jsp的編碼改成UTF-8了~
在這里要注意的一點是在給Messages_zh.properties插入數據是方法錯了~ 當你在MyEclipse打開properties時是會有二種不同的界面~
Properties
Source
在右下腳可以切換他們的界面
當你用Properties界面點add插入中文時~MyEclipse不會報編碼錯誤或其它什么~Value也不會變化~但在你換到Source時中文就是發生了改變~
是不是很像用JDK轉換工具后的中文編碼哦~
所以在給Messages_zh.properties插入中文時要用Properties界面進行插入中文字符~ 當國際化讀取時就不會亂碼了~
這個簡單方法~不如大家試試~
2011-10-9
楊遠強
第四篇:一個空間主機安裝多個網站的方法
多個網站能否安裝在一個空間主機上
空間主機,大家都知道的,但是對于一個空間主機安裝多個網站的方法,大家肯定就不是那么了解了,中國信息港在這里就給大家詳細介紹一下其中的一些細節及步奏!一個空間主機如何安裝多個網站的方法
1、在空間上分別綁定 www.tmdps.cn 和 www.tmdps.cn
2、把 www.tmdps.cn 網站文件傳到根目錄,把 www.tmdps.cn 網站傳到./bbb/ 目錄
3、把下面的代碼保存為 domain.js,然后上傳到空間根目錄 以下是代碼片段: switch(location.host){ case ?www.tmdps.cn?:
location.href=”http://www.tmdps.cn/bbb/” break;}
4、往空間根目錄的首頁的
與 之間加入5、當你輸入 www.tmdps.cn 訪問時看不到任何變化,但是當你輸入 www.tmdps.cn 訪問時,瀏覽器自動跳轉到 www.tmdps.cn/bbb/。這樣便實現了同一個空間安裝2個網站了,要實現多個網站可以依此類推。另一招:(無需綁定子目錄功能)多個域名,在同一個虛擬主機上做多個網站ASP實現同一虛擬主機空間安放多個網站的方法
先將您所有的域名綁定到您的虛擬主機上,然后將虛擬主機根目錄中的index.asp(首頁文件)里加入下列代碼就可以了:
<% sn=lcase(Request.ServerVariables(“SERVER_NAME”))?用于獲取用戶是通過哪個域名訪問的,并轉換成小寫
if sn=”www.tmdps.cn” or sn=” aaa.com” then server.Transfer(“default1.asp”)if sn=”www.tmdps.cn或者aaa.com的話,就訪問default1.asp頁面,如果是用www.tmdps.cn” then server.Transfer(“index1.asp”)%>
第五篇:一個總工對項目精裝修的所有問題及處理方法做的詳細總結
電梯間標準層
現有問題:
1、標準層電梯間層高、凈寬不統一;
2、消防煙感及報警器、電梯按鈕盒、燈具、音響、開關面板、安全指示牌、檢修口等安裝位置均不統一;門洞大小、位置不統一。建議整改方案:
后期項目必須嚴格實行樣板開路制度:將精裝修、安裝等所有相關單位包含的施工內容統一樣板施工,過程中調整至最優施工方案,然后按此樣板大面施工。
電梯間標準層硅鈣板吊頂
現有問題:
1、硅鈣板吊頂邊龍骨、次龍骨安裝不平整、不順直;
2、硅鈣板吊頂邊龍骨被乳膠漆污染;
3、硅鈣板吊頂收邊收口不美觀。建議整改方案:
1、對不平整、不順直的龍骨進行調整;
2、將被污染的邊龍骨進行清理;
3、重新處理收邊收口。
乳膠漆 現有問題:
1、乳膠漆基層膩子不平整、打磨不到位;
2、乳膠漆面漆有明顯刷痕;
3、乳膠漆細部處理不美觀:消防噴淋頭四周,面漆污染消防煙感器、燈具、音箱喇叭、檢修口等邊框;
4、陰陽角不順直、陰角有縫隙(與墻磚銜接處)。建議整改方案:
1、對不平整、不順直的部位進行修補;
2、將被污染的邊框進行清理;
3、重新處理收邊收口。
現有問題:
1、乳膠漆基層空鼓、脫落;
2、乳膠漆面漆有明顯污染、破損;
3、乳膠漆人為二次損壞;
4、乳膠漆細部處理不美觀:陰陽角不順直。建議整改方案:
1、對不平整、不順直、空鼓、脫落的部位進行修補;
2、重新處理收邊收口。
墻面墻磚
現有問題:
1、墻面磚開孔過大,用玻璃膠收口,影響觀感效果;
2、墻面磚部分空鼓、掉落;
3、墻面磚細部處理不美觀:收口膠縫大小不
一、收口方式不正確(未捧角)。建議整改方案:
1、更換開孔過大的墻磚;
2、細部收邊收口重新處理。
現有問題:
墻面磚細部處理不美觀:部分留縫不均、勾縫不飽滿、有污染。建議整改方案:
收邊收口部位重新處理。
功能性面板安裝
現有問題:
1、電梯按鈕盒各樓層安裝位置不統一;
2、開關面板各樓層安裝位置不統一、不規整(東倒西歪)且同樓層面板與面板之間安裝高度和間距不一致,部分安裝高度不符合國家規范(面板下口離地完成面1300mm);
3、消防煙感器和報警器各樓層安裝位置不統一、不規整(東倒西歪),部分因底盒預埋過深,不是采用加長螺絲固定,而直接用玻璃膠固定;部分為后期增加,穿明管且材質不同。
消防指示牌安裝
現有問題:
1、安裝不牢固,極易掉落;
2、部分安裝位置不居中,不平整,與墻面縫隙過大,不美觀。建議整改方案:
1、固定牢固;
2、調整安裝位置,保持居中安裝。
現有問題:
由于門過梁高度不一致,安裝高度不一(170mm~300mm)不等,不美觀。建議整改方案:
調整安裝位置。通風進百葉安裝
現有問題:
1、安裝位置不規整(東倒西歪);
2、沒完全遮蓋墻磚縫隙,不美觀; 建議整改方案:
調整安裝位置。
墻面暗藏門
現有問題:
1、墻面鋼架固定方式不正確:直接在加氣磚上安裝膨脹螺釘與鋼架連接;
2、與墻面連接采用鋼筋,而且還不做防銹處理。建議整改方案:
1、重新制作墻面鋼架基層及飾面磚;
2、鋼架加固,并做好防銹處理。備注:
1、針對加氣磚墻面應采用先安裝預埋鋼板與鋼架連接的方式;
2、與墻面連接應采用鋼架。
首層墻面暗藏門:消防栓門、強電管井門、水井門等
現有問題:
1、部分開啟角度不能達到角度90°;
2、未設置瓷碰,導致開啟不便或關閉不嚴實、不平整(內凹)。建議整改方案:
1、調整合頁(轉軸);
2、增加瓷碰。
標準層墻面明裝門:強電管井門、水井門等
現有問題:
1、部分管井門門上方有明顯縫隙:無填充處理或未打膠收邊收口;
2、不銹鋼門套四周收邊收口打膠不順直、不美觀。建議整改方案:
1、更換不銹鋼門套;
2、重新處理縫隙收邊收口部位。
現有問題:
1、不銹鋼門套捧角處縫隙過大;
2、不銹鋼門套有變形;
3、部分不銹鋼門套安裝不水平、不垂直。建議整改方案:
1、更換不銹鋼門套;
2、重新處理縫隙收邊收口部位。
現有問題:
1、部分管井門下方門檻未補爛、找平;
2、管井門下方門檻收邊收口不美觀、不標準:膩子找平不平整,且未滿刮。建議整改方案:
1、完成水泥砂漿補爛、找平;
2、滿刮膩子找平(避免影響門扇和墻磚)。備注:
常用做法:應采用墻磚捧角的方式,達到收邊收口美觀。
檢修口(首層門廳)
現有問題:
1、檢修口位置設置不統一,各樓層均不同;
2、檢修口位置設置不合理:部分檢修口設置在入戶門正上方或過道正上方,影響整體觀感效果。建議整改方案:
重新選位設置,并達到各樓層定位一致且不影響整體觀感效果。
檢修口(標準層電梯廳)
現有問題:
1、檢修口位置設置不統一,各樓層均不同;
2、檢修口位置設置不合理:部分檢修口設置在電梯門上方,且離石材門套太近,不美觀。
3、部分標準層未設檢修口,不便于后期電路維修。建議整改方案:
1、重新選位設置,并達到各樓層定位一致;
2、所有標準層增設檢修口。
地面地磚
現有問題:
1、地磚與墻磚間縫隙過大;
2、地磚與電梯邊框縫隙過大。建議整改方案:
將雜物清理干凈,用水泥砂漿補縫、找平。
現有問題:
1、地磚踢腳線粘接層太厚,完成面已高出入戶門門框,不美觀;
2、地磚與消防管道收口處縫隙過大。建議整改方案:
1、拆除踢腳線,重新粘貼,控制粘接層厚度;
2、將雜物清理干凈,用水泥砂漿補縫、找平。
現有問題:
1、標準層地磚完成面與入戶門有明顯高低差;
2、標準層地磚完成面與消防樓梯間地平有10mm~70mm不等的明顯高差,不符合國家規范:消防通道為無障礙通道;
3、出現高低差門檻里面收邊收口不統一:部分用水泥砂漿填充且毛刺不平、部分用墻磚粘貼、部分用門檻石磚粘貼。建議整改方案:
1、收邊收口統一用與門檻石相同材質的地磚處理; 2、20mm以內高差用水泥砂漿抹平處理。
收邊收口
現有問題:
打膠不順直,有破損、有污染。建議整改方案:
清理膠縫后,重新打膠。
現有問題:
打膠不順直,有破損、有遺漏、膠縫大小不均。建議整改方案:
1、清理膠縫后,重新打膠。
2、遺漏部位補膠。