Struts2学习总结之基础篇1
Hello world
Action
Result & Result type
Interceptor
Validation
Configuration files
Packages
tag
请求处理流程:
1.浏览器请求一个资源
2.Filter Dispatcher通过分析请求找到相应的处理Action
3.拦截器对请求自动应用通用的功能,如校验,文件上传处理
4.执行action中的相应方法
5.生成输出结果,返回结果给浏览器
修改struts.xml
<constant name="struts.ui.theme" value="simple"></constant>
使得struts2的自动修饰标签的功能失效
修改web.xml,增加以下内容:
<filter>
??????? <filter-name>struts2</filter-name>
??????? <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
??????? </filter-class>
</filter>
<filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>/*</url-pattern>
</filter-mapping>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:property value="message"/>
或${message}
<body>
??? <s:form action=“login“ namespace="/demo" >
??? <s:textfield name="name" label="用户名"></s:textfield>
??? <s:textfield name="password" label="密码"></s:textfield>
??? <s:submit value="登录"></s:submit>???
??? </s:form>
</body>
<body>
??? 登录失败, <a href="<s:url value="/login.jsp"/>">点击</a>重新登录
</body>
普通JSP的实现:
<html>
?? <head><title>Add Blog Entry</title></head>
?? <body>
???? <form action="save.action" method="post">
???????? Title: <input type="text" name="title" /><br/>
???????? Entry: <textarea rows="3" cols="25" name="entry"></textarea>
<br/>
???????? <input type="submit" value="Add"/>
???? </form>
?? </body>
</html>
使用Struts Tag:
<%@ taglib prefix="s" uri="/struts-tags" %>
?<html>
?? <head><title>Add Blog Entry</title></head>
?? <body>
??? <s:form action="save" method="post" >
?????? <s:textfield label="Title" name="title" />
?????? <s:textarea label="Entry" name="entry" rows="3" cols="25" />
?????? <s:submit value="Add"/>
?? </s:form>
??? </body>
?</html>
不同的访问入口可以通过method属性来指定
<action name="delete" method="delete">
一系列的action可能共享一个模式,我们不需要为每一个action单独进行配置,只需要通过通配符配置一次。
<action name="*Crud" method="{1}">
我们可以指定一个默认的action来处理不被其它action匹配的请求
<package name="Hello" extends="action-default">
<default-action-ref name="UnderConstruction">
<action name="UnderConstruction">
? <result>/UnderConstruction.jsp</result>
</action>
struts中的action可以为普通的pojo
通过filter引入struts框架
缺省的扩展名为.action