struts框架基础

struts框架基础
  • 关于框架的学习:

    • 需要理解框架的底层原理(难点)
    • 掌握框架的规则
  • mvc框架作用:

    • 将url映射到java类
    • 获取用户提交的数据
    • 渲染数据
    • 控制显示视图
  • struts2:

    • 目录介绍:

      • apps: 项目案例
      • docs: 学习文档
      • lib: jar包
      • src: strust2源码
    • struts2使用:

      • 导入jar包
      • 配置web.xml文件

        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      • src下添加struts.xml配置文件

      • 编写action类:
        • 在struts2中默认执行execute方法
        • 方法均无参数,为public,返回值为String
      • 在struts.xml中配置action类

        • struts2是基于包来管理

          <struts>
              <package name="hello" extends="struts-default">
                  <!-- action中name为请求名称 -->
                  <action name="hello" class="com.eric.action.HelloAction">
                      <!-- 和action类返回值匹配  -->
                      <result name="success">/index.jsp</result>
                  </action>
              </package>
          </struts>
        • package: extends必须写,直接或间接继承struts-dafault,name自定义

        • action: name是请求名称,不需要/,class对应action完全限定名
        • result: 结果集,name对应action中方法返回值匹配,默认是"success"

  • struts登陆界面案例

    • 配置web.xml

      <filter>
          <filter-name>struts2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern>*.action</url-pattern>
      </filter-mapping>
    • 创建struts.xml文件

    • 编辑jsp文件

      <html>
          <head>
              <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
              <title>Login</title>
          </head>
          <body>
              <form action="login.action" method="post"> <!-- .action结尾会经过过滤器 -->
                  username:<input type="text" name="name"/>
                  <br>
                  password:<input type="password" name="pwd"/>
                  <br>
                  <input type="submit" value="login"/>
              </form>
          </body>
      </html>
      • form中的action需要有扩展名,且要和web.xml文件中过滤器的配置一致
    • 编辑Action类

      package com.eric.action;
      
      public class LoginAction {
          // 变量名称和jsp中数据属性name一致
          // 类型转换自动完成
          private String name;
          private String pwd;
      
          // 处理方法
          public String execute() {
              if("char".equals(name) && "1234".equals(pwd)) {
                  return "success";
              } else {
                  return "failed";
              }
          }
      
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name = name;
          }
          public String getPwd() {
              return pwd;
          }
          public void setPwd(String pwd) {
              this.pwd = pwd;
          }
      }
      • action中的变量名称要和jsp页面中的属性名称一致
      • 并且要提供get和set方法
      • struts2会自动将表单的请求数据设置到对应的变量上
      • 可以在jsp中直接取值,不需要调用request.setAttribute()
    • 配置struts.xml

      <struts>
          <package name="default" namespace="/" extends="struts-default">
              <!-- 此处不需要添加.action扩展名 -->
              <action name="login" class="com.eric.action.LoginAction">
                  <!-- 可以配置type,默认是转发dispatcher -->
                  <result name="success">/success.jsp</result>
                  <result name="failed">/login.jsp</result>
              </action>
          </package>
      </struts>

猜你喜欢

转载自blog.csdn.net/weixin_40683252/article/details/80999061