Struts2简介和简单Demo

Struts

  • 是流行和成熟的基于MVC设计模式的Web应用程序框架
  • 使用Struts减少在运用MVC设计模式来开发Web应用的时间

MVC模式:

  • JSP + JavaBean = Model1
  • JSP + Servlet + JavaBean = Model2
    Markdown

Struts发展

Markdown

Struts2执行原理及过程


搭建Struts2环境步骤

  • 创建Web项目
  • 下载并导入相关jar包
  • 配置过滤器
    • 添加至web.xml
  • 创建Action
  • 创建并完善相关配置文件
    • 核心配置文件(struts.xml)和位置(src)固定
    • 引入dtd约束
  • 测试启动,访问配置文件中的action标签的name(一般后缀jiashang.action)

struts.xml中的标签

  • package:类似于代码包,区别不同的action,要配置action必须先写package标签,在package里才能配置action
    • name属性:name值唯一
    • extends属性:属性值固定,写了这个属性之后,配置的action才有效。extends=”struts-default”
    • namespace属性:namespace属性值和action标签里的name属性值构成访问路径,namespace=”/”
  • action:配置action访问路径
    • name属性:namespace属性值和action标签里面的name属性值构成访问路径。在package标签里写多个action标签,但是action的name属性值不能相同
    • class属性:action全路径
    • method属性:指定访问action的方法
  • result:根据action的方法返回值,配置到不同的路径里
    • name属性:和方法的返回值一样。如<result name=”ok”>/htllo.jsp</result>
    • type属性:配置如何到路径中(转发或者重定向),默认做转发操作

常量配置

  • 在struts.xml中配置

<constant name="struts.i18n.encoding" value="UTF-8"></constant>
  • 在src下创建struts.properties文件进行配置
  • 在web.xml中进行配置

分模块开发

  • 单独写配置文件,把配置文件引入到核心配置文件中
     
    <!-- 引入hello.xml文件 -->
    <include file="com.hello.xml"><include/>

Action三种编写方式

  • 创建普通类,不继承任何类也不实现任何接口
  • 创建类,实现Action接口
  • 创建类,继承ActionSupport类

访问Action中指定的方法

  • 配置action标签的method属性,属性值为方法名
<action name="addAction" class="com.BookAction" method="add"></action>
  • 使用通配符方式实现
<!-- 
name属性值里写符号*
如果要执行action里面的add方法,访问book_add,使用book_* 可以匹配到,此时*相当于add
-->
<action name="book_*" class="com.BookAction" method="{1}"></action>
  • 动态访问实现
    • 动态方法访问在Struts2中默认是不开启的,如果想要使用需要先开启一个常量
      <constant name=”struts.enable.DynamicMethodInvocation” value=”true”></constant>
    • 动态方法访问主要的控制是在页面端,所以编写Action和配置Action都很简单,关键是访问路径的编写
    • 配置Action:
      <action name=”userAction” class=”com.UserAction”></action>
    • 页面访问路径:
      <a href=”${pageContext.request.contextPath}/userAction!save.action”>添加用户</a>
      **如果action方法的返回值在配置文件中没有配置,则有404错误;如有返回值则返回值类型必须为String;可以没有返回值或返回值为”none”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值