struts2总结

1,
    获取数据库连接的代码
    Class.forName("com.mysql.jdbc.Driver");
    String url="jdbc:mysql://localhost:3306/mydb?user=root&password=12345678";
    Connection con = DriverManager.getConnection(url);
2,
    struts1.x编写步骤:
    1.编写JavaBean:User,必须继承于ActionForm类
    2.在strus-config.xml中注册User的对象user,FormBean的概念
     <struts-config>
        <form-beans>
            <form-bean name="user" type="myuser.User" />
        </form-beans>
        <global-forwards>
        <forward name="userlist" path="/userlist.jsp" redirect="true"></forward>
        </global-forwards>
        <action-mappings>
        <action path="/user" type="myuser.UserAction" name="user" parameter="op"></action>
        </action-mappings>
    </struts-config>
    3,编写UserDAO类中的方法 addUser(User user)
    4.编写AddUserAction,调用UserDAO类中的addUser方法,添加用户此类必须继承于Action
    5.配置AddUserAction, path,name,scope,forward添加成功后直接转向userlist.jsp
    
3,struts标签:
    bean:用来创建bean、访问bean和访问bean的属性。
    html:用来创建Struts输入表单。
    logic:用来进行逻辑判断、集合迭代和流程控制。
    nested:建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。
    tiles:用来创建tiles样式的页面。 
    
4, <a href="#" class="delet" lang="${user.userName}">删除</a> (#表示不跳转,lang用来传值)

5,
    struts1.3 api 文档
    1.Action类
    exectute方法

    2.ActionMapping 对应
    <action path="/user" type="myuser.UserAction" name="user" parameter="op"></action>

    3.ActionForward 对应
    <forward name="list" path="/userlist.jsp" redirect="true"></forward>

    4.FormBean
    编写struts框架,主要用到了反射的方法
    
6.
    struts2.x环境搭建:
    1,建一个动态网站项目。
    2,jar包拷贝到项目中。
    3,从例子程序中拷贝struts.xml 和 web.xml模版文件,struts.xml文件放到src或者classess目录下
    (struts2中在action中获取response对象ServletActionContext.getResponse();)
    4,2.配置Action
    package用组织action
    <package name="user" namespace="/" extends="struts-default">
    <action name="checklogin" class="myuser.CheckLoginAction" method="execute"></action>
7, struts.devMode = false 设置开发模式(Struts2.x),无扩展名和扩展名为.action时,由struts2进行处理。
8,
    三种Action获取数据的方式
    1.注入属性
    2.Domain Model 这是一般常用的方式
    3.ModelDriven
    <s:if test="#session.user==null">(OGNL表达式)
    
9,
    配置Action的方法(struts2)
    如何解决action太多的问题??
    1.建立多个Action类
    2.method方式:建立一个Action类,在类中编写不同的方法,在不同的方法中处理不同的请求。
    在struts.xml中配置method属性,让不同的action指向同一个Action类的不同方法。
    3.感叹号方式:
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    不需要配置method,直接用!方法名的方式来调用。
    DynamicMethodInvocation =动态方法调用

    4.通配符方式(官网推荐) “约定大于配置”
    checkLogin    
    checkExists   
    add           
    delete        
    modify        
    <action name="*" class="myuser.UserAction" method={1}>
    </action>
    
10,
    a.Value Stack 的概念  访问时不用加#
    值栈
    b.Stack Context      访问时要加#
    都是用来存放数据

11,<s:iterator value="#USERLIST" id="cue" status="st">
    其中id可以省略,st用来表示序号,#代表是OGNL表达式
    
12,所有访问改为从根目录开始:绝对路径的问题 <a href="${pageContext.request.contextPath}/main.jsp">返回主页面</a>

13,<td><a href="#" class="picture" lang="<s:property value="id" />">照片</a></td>(href加#表示不跳转)

14,
    提交表单:1,用ajax提交的,在action中就return null,2. 用<from>表单提交,在action中return到你想去地方。
    
15, <result name="list" type="redirectAction" >(跳转到action时要加“redirectAction”)

16,
    实现文件上传,添加用户照片
    1.为表单设置
    enctype= "multipart/form-data"
    
17, 
    private File image;//
    private String imageFileName;//
    private String imageContentType;//
    (Struts2规定的上传文件的变量)
    
18,
    getParentFile()的作用是获得父目录
    问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,不用getParentFile()获得父目录的话,就会像你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果。
    
19,照片上传,layer
    json

{ //您服务端接口需严格按照下述格式返回
        "status": 1,    //请求的状态,1表示成功,其它表示失败
        "msg": "",  //状态提示语
        "title": "",    //相册标题
        "id": number型,    //相册id
        "start": 0, //初始显示的图片序号,默认0
        "data": [   //相册包含的图片,数组格式
            {
                "name": "", //图片名
                "pid": number型, //图片id
                "src": "", //原图地址
                "thumb": "", //缩略图地址
                "area": [638, 851] //原图宽高
            }
        ]
    }
   
20,
    如果有照片,那么将照片的信息用表格的方式显示出来
    首先判断是否有照片
    用到s:if
    <s:if test="%{#PICTURE.size()>0}">
    
21,
    No operations allowed after connection closed.
    连接关闭后,不允许执行任何操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值