Struts2
来源:互联网 发布:java模拟登陆获取数据 编辑:程序博客网 时间:2024/06/05 12:12
Struts2主要以以下几个方面入手:
1访问Servlet API:
servlet API : HttpServletRequest,HttpServletResponse,ServletContent 对应的对象为:request ,response,application
struts2中得Action的execute方法,struts2 不存在servlet API 这也是struts2的一种特色struts2没有servlet API 但是又不能不用 就提供了三种方式去访问servlet API
2Action的搜索顺序:
3动态方法的调用:
指定method属性 :
web.xml文件配置和上一篇的web.xml一样struts.xml文件配置:
<struts> <package name="default" namespace="/" extends="struts-default"> <!-- action默认的method ="execute"--> <action name="index" class="com.action.HelloWorldAction"> <result> /HelloWorld.jsp </result> </action> <action name="add" method="add" class="com.action.HelloWorldAction"> <result> /add.jsp </result> </action> <action name="update" method="update" class="com.action.HelloWorldAction"> <result> /update.jsp </result> </action> </package></struts>add.jsp:
<body> hello struts2!! add<br> </body>update.jsp ,Helloworld.jsp同上
Action类:
package com.action;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class HelloWorldAction extends ActionSupport {@Overridepublic String execute() throws Exception {System.out.println("执行成功");return SUCCESS;}public String add() throws Exception {System.out.println("add执行成功");return SUCCESS;}public String update() throws Exception {System.out.println("update执行成功");return SUCCESS;} }执行流程:输入url http://localhost:8080/项目名/index ---》进入到Struts2框架-----》struts.xml配置文件中的<action name="index" class="com.action.HelloWorldAction">找到相应的Action类并且找到类中相应的method----》返回给struts2框架一个字符串----》执行result标签下的页面。
输入url http://localhost:8080/项目名/add ---》进入到Struts2框架-----》struts.xml配置文件中的<action name="index" method ="add" class="com.action.HelloWorldAction">找到相应的Action类并且找到类中相应的method----》返回给struts2框架一个字符串----》执行result标签下的页面。最后一个同理 (Action类是一样的)这样做的弊端就是每个Action都需要配置 这就有了第三种方式(第二种方式访问Action官方不推荐)通配符的方式:
上面的例子只改变struts.xml配置:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="default" namespace="/" extends="struts-default"><action name="index_*" method="{1}" class="com.action.HelloWorldAction"> <result name="add">/{1}.jsp</result> <result name="update">/{1}.jsp</result> <result> /HelloWorld.jsp</result> </action></package> </struts>当用户输入url http://localhost:8080/项目名/index_ 时访问HelloWorld.jsp当用户输入url http://localhost:8080/项目名/index_ add 时访问add.jsp当用户输入url http://localhost:8080/项目名/index_ update时访问update.jsp*表示通配符 {1} 表示的为第一个*所代表的内容 可以有多个*指定多个配置文件:如果是action太多的话不用写在一个struts.xml中 可以指定多个配置文件使用<include>添加到一个总的struts.xml文件中 <constant>还可以指定编码集注意:1.被include的标签一定要符合struts的dtd规范。也就是说被include的xml文件的内部格式要符合struts的xml文件规范。2.xml文件的编码格式要相同,如果是utf-8,那么都是utf-8。4默认Action:
当用户访问不存在的action时 就会跳转到这个页面(404) <default-action-ref name="默认action名称"><default-action-ref><action name="与上面默认action名称相同"><result>/error.jsp</result><!-- error.jsp为默认action跳转页面--></action>5配置struts2的action后缀 :
如果什么都没有配置默认为action 也可以不加后缀 但是当你配置了后缀之后就不能不加后缀 1:在struts.xml文件中配置 2:在过滤器中(web.xml中的<filter>标签内)配置intt-param参数:<init-param> <param-name>struts.action.extension</param-name> <param-value>do,action,strtus2</param-value></init-param>3:在struts.properties文件中配置 但是这个不常用该图表示后缀名为null 意思是不需要写后缀名也可以访问action
0 0
- Struts2
- struts2
- struts2
- Struts2
- struts2
- struts2
- Struts2
- struts2
- struts2
- struts2
- Struts2
- Struts2
- Struts2
- struts2
- struts2
- STRUTS2
- Struts2
- Struts2
- javascript中window.event事件用法详解
- 欢迎使用CSDN-markdown编辑器
- hihoCoder
- [Debug]There is no getter for property named '__frch_item_0' in
- window安装MySQLdb python版
- Struts2
- 排列组合算法实现--基于JS
- LintCode 解题记录17.5.13(tag: Union Find)
- 《跟我一起写Makefile》读书笔记(3)
- 666:放苹果
- Node.js子进程child_process
- 最大连续子序列和(java)
- scrapy环境搭建
- 面试时,可以问面试官问题总结