Struts学习第一天:struts2配置、加载顺序、数据校验

20170712
1、/Struts2_1100_SimpleDataValiation
注意点:
一:加载web工程,第一个访问web.xml文件;如果存在filter和filter-mapping,看url-parttern,为/ *;
二:然后去/Struts2_1100_SimpleDataValiation/src/struts.xml文件中查看是否存在namespace为”/”(namespace的默认为”“)的action;
存在则访问,不存在则访问web.xml文件中的welcome-file-list;
三:struts.xml文件的访问方式为:namespace+action;根据result决定访问哪一个结果,result可不写,默认为SUCCESS(“success”);
四:struts.xml文件的访问class可根据属性决定,会访问action层(C:controller);
五:该层有三种实现方式:
第一种:任意一个类,存在execute()方法
第二种:implement Action 接口,并且@override execute() 方法;
第三种:extend ActionSupport类,重写该方法; 第三种最常用。
六:在struts.xml文件中,可自定义访问的方法:,并可相应的extend ActionSupport类之后写方法;
七:最长用的访问多个方法的是:DMI模式- - >动态调用。无需配置method,直接在JSP页面:通过”!”+method()

<a href="user/userAdd?user.name=123&user.age=50">路径说明a> <br>  静态
<a href="user/user!add?user.name=arvin&user.age=25">第二个a>         动态,

传参数:?user.name=arvin&user.age=25即可。href后面是绝对路径:需进行如下配置:

<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

并在head中添加:

<base href="<%=basePath%>">

八:Action类可通过DemainModel(域模型)的方式,减少耦合性:建立模型类User

            public class UserAction extends ActionSupport {

                private User user;

                public String add() {
                    System.out.println(user.getAge());
                    System.out.println(user.getName());

                    if (user.getName() == null || !(user.getName() == "admin")) {
                        this.addFieldError("name", "name is error");
                        this.addFieldError("name", "name is too long");
                        System.out.println(ERROR);
                        return "error";
                    }
                    return SUCCESS;
                }

                public User getUser() {
                    return user;

                }

                public void setUser(User user) {
                    this.user = user;
                }

            }

在进行数据校验,需要this.addFieldError(“name”, “name is error”) 方法;
九:在相应JSP页面,进行参数显示:首先,配置struts标签:/META-INF/struts-tags.tld文件中可看到
<%@taglib uri=”/struts-tags” prefix=”s” %>
然后在body中:

<s:fielderror fieldName="name" theme="simple"/>  struts固定模式
<br />
<s:property value="errors.name[0]"/>             自定以显示,errors的存储方式是Map,key是name,value是value,故errors.name是数组,去第0个元素
<s:debug>s:debug>                              显示debug,debug是stack模式。

十:进行分析时,观察链接,然后去找。

你可能感兴趣的:(Struts2学习)