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" class="example.CrudAction" method="delete">
一系列的action可能共享一个模式,我们不需要为每一个action单独进行配置,只需要通过通配符
配置一次。
<action name="*Crud" class="example.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