Struts2 入门
一、Struts2入門(mén)案例
①引入jar包
②在src下創(chuàng)建struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 修改文件 tomact不用重啟 --><constant name="struts.devMode" value="true" /><package name="default" namespace="/" extends="struts-default"><!-- 第一個(gè)action --><action name="HelloWordAction" class="cn.happy.action.HelloWordAction"><result name="success">index.jsp</result></action></package></struts>dtd約束條件查找路徑:
③創(chuàng)建HelloWordAction類(lèi),實(shí)現(xiàn)Action接口,不僅定義了public String execute(),還提供了5個(gè)字符串類(lèi)型的靜態(tài)常量。如
success、none、error、input、login
public class HelloWordAction implements Action{private String name;public String execute() throws Exception {setName("Hello"+name);return "success";}public String getName() {return name;}public void setName(String name) {this.name = name;}④配置文件web.xml。將全部請(qǐng)求定位到指定的Struts 2過(guò)濾器中
?
index.jsp頁(yè)面:
并引用 taglib指令<%@taglib uri="/struts-tags" prefix="s" %>
注:form表單的action屬性名應(yīng)該和struts.xml的action一致
<div><h1><s:property value="name"/></h1></div><div><form action="HelloWordAction" method="post">請(qǐng)輸入你的姓名:<input name="name" type="text"><br/><br/><input type="submit" value="提交"></form></div>實(shí)現(xiàn)效果:
?
二、實(shí)現(xiàn)自動(dòng)裝配,將action類(lèi)中的屬性 包裝到一個(gè)實(shí)體類(lèi)User。然后在action類(lèi)中定義私有屬性User,進(jìn)行封裝。在index.jsp頁(yè)面即可使用User對(duì)象點(diǎn)出其屬性
三、登錄案例:
?
?實(shí)現(xiàn)效果:
?
四、如何使頁(yè)面上還是username,也能實(shí)現(xiàn) 自動(dòng)裝配呢?[模型驅(qū)動(dòng)--ModelDriven]
讓Action實(shí)現(xiàn)一個(gè)ModelDriven<User>,其次手動(dòng)實(shí)例化User對(duì)象,并實(shí)現(xiàn)該方法,返回user
?
五、Struts2訪問(wèn)ServletAPI對(duì)象獲取Session。
分為兩類(lèi):①解耦的訪問(wèn)方式 ②耦合的訪問(wèn)方式
關(guān)鍵代碼:
1、耦合一。
獲取到session并返回一個(gè)HttpSession.以及session.setAttribute方法獲取到username
?| 1 2 3 | //耦合<br>?? private HttpServletRequest request; HttpSession session2 = ServletActionContext.getRequest().getSession(); session2.setAttribute("uname", user.getUsername()); |
2、耦合二。
實(shí)現(xiàn)ServletRequestAware接口,并重寫(xiě)其方法,定義一個(gè)Request屬性并進(jìn)行封裝
?| 1 | request.getSession().setAttribute("uname", user.getUsername()); |
?
3、解耦合一
?使用ActionContex類(lèi)獲取ServletAPI對(duì)象對(duì)應(yīng)的Map對(duì)象
?| 1 2 | private Map<String, Object> map;<br>Map<String, Object> session = ActionContext.getContext().getSession(); session.put("uname",user.getUsername()); |
4、解耦合二 ?注入[IOC思想]。實(shí)現(xiàn)SessionAware接口,獲取到Map集合
?| 1 | map.put("uname", user.getUsername()); |
六、struts2常用表單標(biāo)簽
轉(zhuǎn)載于:https://www.cnblogs.com/jingpeipei/p/5906386.html
總結(jié)
以上是生活随笔為你收集整理的Struts2 入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: github使用-知乎的某小姐的一篇文章
- 下一篇: 关于IOS中safari下的select