struts小解

一,什么是框架?  所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑。
        二,MVC设计模式  将应用程序分为3个部分:模型 Model,视图View,控制器Controller;  模型组件:负责业务逻辑;   模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。  视图组件:负责表示业务范围的视图;   视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。  控制器组件:负责控制用户输入的流和状态;   控制器对用户的输入作出反应。它创建并设置模型。    Struts,它是使用 servlet 和 JavaServer Pages 技术的一种MVC 实现;  Struts,Apache组织的一个项目,MVC 的一种开放源码实现;
       三,什么是Struts框架  Struts 是一组相互协作的类、servlet 和 JSP 标记组成的一个可重用的 MVC 2 设计。  这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。

 

其实struts就是一个大大的servlet,{大家都知道:通过视图层的jsp页面的提交请求到servlet(控制器)进行业务逻辑判断!我们回忆一下从最初的jsp页面的跳转和判断(一个jsp发出请求到另一jsp中),到mvc1,在到mvc2,都是更好实现面向对象的编程,不断的提高程序的整体性能和开发效率。struts框架提供了一个组件集合,不但大大加快了程序的开发效率,而且简单易学。}这个servlet的名字叫ActionServlet,在web-congfig.xml文件中把某一组请求映射给这个servlet,通常用*.do,其实就是映射给struts框架,当ActionServlet接收到请求以后又将这个请求交给相应的Action处理(通过struts-config.xml中的配置信息)

示例:

web.xml{

 <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

 <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

}

struts-config.xml{

<action  name="PetInfo"
   path="/Action" scope="request" type="com.epet.action.PetAction" parameter="method">
   <forward name="update" path="/pet.jsp" ></forward>
   <forward name="showOne" path="/updatepet.jsp" ></forward>
  </action>

}

上述代码中在页面提交Action.do请求从web.xml中跳转到{org.apache.struts.action.ActionServlet}struts中,然后根据Action这个关键字匹配到com.epet.action.PetAction,完成跳转!

当ActionServlet吧请求交给Action时会把请求参数自动封装到formBean中。Action处理完后会通过actionforward对象(在配置文件中进行信息匹配 <forward name="update" path="/pet.jsp" ></forward>
)跳回表示层,这样可以增加与页面的解耦行,增加代码的灵活度......

 

struts的不足:

1.配置文件繁琐,每配置一个struts-config.xml文件必须重启tomact服务。

2.Action必须要有想对应的ActionForm

3.入侵式框架.

 

ActionForm的应用

1.注意类中的属性名要与页面中的标签名相匹配。

2.特殊用法:

实体类Info

public Info

{

private Integer diaryId;

public Integer getDiaryId() {
  return this.diaryId;
 }

 public void setDiaryId(Integer diaryId) {
  this.diaryId = diaryId;
 }

 

}

 

Form类

public InfoForm{

private Info info;

public Integer getInfo() {
  return this.info;
 }

 public void setInfo(Info info) {
  this.diaryId = info;
 }

}

 

jsp页面

<input name="${info.diaryId}"

 

这样在操作对象是可以方便快捷....

 

 

ActionForm类和实体类

Form类中是页面相匹配的属性,实体中是数据库中相匹配的属性......

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值