为了账号安全,请及时绑定邮箱和手机立即绑定

Struts2入门

  • 这个方法我只是针对通配符使用的

    https://img1.sycdn.imooc.com//5b696d460001caf606140358.jpg

    我看到视频里面两个方法好像都是return SUCCESS;所以改了url地址一直都无法跳转到其他两个页面,如果有和我一样的情况的同学可以把success改为"add"和"update",这样就没问题了

    查看全部
  • Struts官方网站:http://struts.apache.org/

    历史版本:http://archive.apache.org/dist/struts/

    查看全部
  • 搭建Struts环境步骤:

    查看全部
  • Struts2环境:

    查看全部
  • Struts2

    查看全部
    0 采集 收起 来源:Struts2发展历史

    2018-07-20

  • 数据类型转换错误时会返回INPUT

    (1)校验方法在LoginAction中添加validate()

    public void validate(){
        if(user.getUsername()==null||"",equals(user.getUsername)){
            this.addFieldError("username","用户名不可为空!");
        }
    }

    (2)表单页面加入struts2标签

    <%@ taglib prefix="s" uri="/struts-tags" %>
    <input type="text" name="username" /><s:fielderror name="username"></s:fielderror>


    查看全部
  • action接收参数

    有表单如下:

    <form action="LoginAction" method>
        <input type="text" name="username" />
        <input type="password" name="password" />
        <input type="submit" value="提交" />
    </form>

    创建LoginAction,添加login()

    public String login(){
    
        //********
        return SUCCESS;
    }

    1、属性接收

    //在LoginAction中建立username、password属性
    private String username;
    private String password;
    //实现其get、set方法
    //login()可以调用username、password

    注:属性接收简单,但对于属性多的情况不利于代码维护

    2、DomainModel接收

        (1)创建user类

    public class User{
        private String username;
        private String password;
        //实现其get、set方法
    }

        (2)LoginAction中声明User

    private User user;
    //实现User的get、set方法

    注:在form表单中,input的name要指定类名如user.username.

    3、实现ModelDriven接口

    LoginAction实现ModelDriven接口

    public class  LoginAction extends ActionSupport implements ModelDriven<User>{
        //用ModelDriven必须实例化User
        private User user=new User();
        public String login(){
            return SUCCESS;
        }
        public User getModel(){
            return user;
        }

    4、复杂参数接收

    (1)user类包含ListBook类

    public class User{
        private String username;
        private String password;
        private List<ListBook> listbook;
        //实现其get、set方法
    }

    (2)新建ListBook类

    public class ListBook{
        private String bookname;
        private int price;
        //实现其get、set方法
    }

    (3)form表单中添加

    <input type="text" name="listbook[0].bookname">
    <input type="text" name="listbook[0].price">
    <input type="text" name="listbook[1].bookname">
    <input type="text" name="listbook[1].price">

    (4)login()中获取

    String book1=user.getListBook().gte(0).getBookName();
    String book2=user.getListBook().gte(1).getBookName();


    查看全部
  • 1、多个配置文件可以用<include>,在struts.xml中统一配置

    <include file="xx.xml"></include>

    2、设置常量(此方法可以顶替struts.properties文件)

    <constant name="常量名" value="常量值"></constant>

    3、动态方法调用+通配符使用

    <action name="*_*" method="{2}" class="包全名.{1}">
        <!-- *_*中*代表任意字符,_代表固定格式
            {1}{2}是第几个*所代表的字符串
            例:hello_add
            {1}=hello【action名】;{2}=add【action中方法名】
            调用hello.acton中的add()
        -->
        <result>/xx.jsp</result>
    </action>

    4、默认action(用来处理找不到相应action时,统一跳到一个友好界面)

    <default-action-ref name="aaa"></default-action-ref>
    <action name="aaa">
        <result>/xx.jsp</result>
    </action>
    1. 注:当同包中存在action name="*_*"时,访问路径写成hello_aaa不能跳到指定的目标。用为会默认先匹配action部分,匹配成功后就不再找默认action了。

    5、struts2后缀

    <!-- struts.xml中添加常量修改action后缀 -->
    <constant name="struts.action.extension" value="html"></constant>
    <!-- 1、后缀再写action报错,要改成.html 
         2、该常量也可以在struts.properties中配置
             struts.action.extension=action,do,struts2
         3、也可以在过滤器<filter>中配置
             <init-param>
                 <param-name>struts.action.extension</param-name>
                 <param-value>do</param-value>
             </init-param>
    -->


    查看全部
  • Struts2是基于MVC设计模式的Web应用程序框架,能节省Web应用开发时间

    Struts实例程序创建步骤(工具Myeclipse10+tomcat7+jdk1.7):

    1、创建Web Project

    2、导入jar包,在src下建立struts.xml

    3、打开web.xml,添加

    <filter>
        <filter-name>[过滤器名]</filter-name>
        <filter-class>   
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>[过滤器名]</filter-name>
        <url-pattern>/*</url-pattern>
        <!-- /*代表过滤所有路径 -->
    </filter-mapping>

    4、打开struts.xml,假如文档类型定义DTD(用myeclipse直接添加struts后不用会搜懂添加DTD)

    5、创建action,新建class(命名hello)继承ActionSupport类,默认执行ActionSupport的execute() 执行成功返回SUCCESS.

    6、在struts.xml中配置action

    <package name="default" namespace="/" extends="struts-default">
    <!-- package name="default"   是默认包名,可以自定义,用于被其他包继承
            namespace="/"    命名空间,可以指定可以默认
           extends="default"    该包所继承的包
    -->
        <action name="hello" method="" class="包全名.hello">
            <result name="">/result.jsp</result>
            <!-- result 的name默认是SUCCESS 也可以是其他action中传回的字符串 -->
        </action>
    </package>

    7、在WebRoot下创建result.jsp

    8、发布运行项目,打开浏览器访问http://localhost:8080/[项目名]/hello.action。

    注:myeclipse最高支持jdk1.7+tomcat7.x

    本机最初配置是jdk1.8,运行项目后报错如下

        The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files


    查看全部
  • 返回 结果类型 中的 type

    查看全部
  • 处理结果类型  result 的type 


    查看全部
  • 处理结果类型中 :


    局部结果 <action> 中套入 <result>

    全局结果 <global-result> 中套入 <result>

    查看全部
  • 在struts2 的结果类型中 

    使用 result标签 若不填name属性   则采用默认值success

    查看全部
  • struts2 返回结果是字符串 ,

    return "success"    

    找到对应视图

    查看全部
  • struts2 调用方式

    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要具备Java Web基础,熟悉JSP和Servlet。
老师告诉你能学到什么?
1、能够对Struts2框架有更深入的了解 2、能够独立编写Struts2程序

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!