您好,欢迎访问一九零五行业门户网

分享关于javaee学习的知识点

一、结果跳转方式
        <action name="demo1action" class="cn.itheima.a_result.demo1action" method="execute" ><result name="success" type="dispatcher" >/hello.jsp</result></action>
转发
        <action name="demo2action" class="cn.itheima.a_result.demo2action" method="execute" ><result name="success" type="redirect" >/hello.jsp</result></action>
重定向
        <action name="demo3action" class="cn.itheima.a_result.demo3action" method="execute" > <result name="success" type="chain"> <!-- action的名字 --> <param name="actionname">demo1action</param> <!-- action所在的命名空间 --> <param name="namespace">/</param> </result></action>
转发到action
        <action name="demo4action" class="cn.itheima.a_result.demo4action" method="execute" ><result name="success" type="redirectaction"> <!-- action的名字 --> <param name="actionname">demo1action</param> <!-- action所在的命名空间 --> <param name="namespace">/</param></result></action>
重定向到action
二、访问servletapi方式
1.原理
2.通过actioncontext(推荐)
//如何在action中获得原生servletapipublic class demo5action extends actionsupport {public string execute() throws exception {//request域=> map (struts2并不推荐使用原生request域)//不推荐map<string, object> requestscope = (map<string, object>) actioncontext.getcontext().get(request);//推荐actioncontext.getcontext().put(name, requesttom);//session域 => mapmap<string, object> sessionscope = actioncontext.getcontext().getsession();         sessionscope.put(name, sessiontom);//application域=>mapmap<string, object> applicationscope = actioncontext.getcontext().getapplication();         applicationscope.put(name, applicationtom);        return success;     }     }
view code
3.通过servletactioncontext
//如何在action中获得原生servletapipublic class demo6action extends actionsupport {//并不推荐public string execute() throws exception {//原生requesthttpservletrequest request = servletactioncontext.getrequest();//原生sessionhttpsession session = request.getsession();//原生responsehttpservletresponse response = servletactioncontext.getresponse();//原生servletcontextservletcontext servletcontext = servletactioncontext.getservletcontext();return success;     } }
view code
4.通过实现接口方式
//如何在action中获得原生servletapipublic class demo7action extends actionsupport implements servletrequestaware {    private httpservletrequest request;public string execute() throws exception {                   system.out.println(原生request:+request);return success;     }     @overridepublic void setservletrequest(httpservletrequest request) {this.request = request;     } }
view code
三、如何获得参数
1.扩展
1.1 strutsmvc
1.2 action生命周期
 1.2.1 每次请求到来时,都会创建一个新的action实例
1.2.2 action是线程安全的.可以使用成员变量接收参数
2.属性驱动获得参数
    <form action="${pagecontext.request.contextpath}/demo8action">用户名:<input type="text" name="name" /><br>年龄:<input type="text" name="age" /><br>生日:<input type="text" name="birthday" /><br>         <input type="submit" value="提交" />     </form>
jsp界面代码
    //准备与参数键名称相同的属性private string name;//自动类型转换 只能转换8大基本数据类型以及对应包装类private integer age;//支持特定类型字符串转换为date ,例如 yyyy-mm-ddprivate date   birthday;    public string execute() throws exception {                   system.out.println(name参数值:+name+,age参数值:+age+,生日:+birthday);        return success;     }public string getname() {return name;     }public void setname(string name) {this.name = name;     }public integer getage() {return age;     }public void setage(integer age) {this.age = age;     }public date getbirthday() {return birthday;     }public void setbirthday(date birthday) {this.birthday = birthday;     }
后台代码
3.对象驱动
    <form action="${pagecontext.request.contextpath}/demo9action">用户名:<input type="text" name="user.name" /><br>年龄:<input type="text" name="user.age" /><br>生日:<input type="text" name="user.birthday" /><br>         <input type="submit" value="提交" />     </form>
jsp界面代码
public class demo9action extends actionsupport  {//准备user对象private user user;public string execute() throws exception {                   system.out.println(user);        return success;     }public user getuser() {return user;     }public void setuser(user user) {this.user = user;     } }
后台代码
4.模型驱动
    <form action="${pagecontext.request.contextpath}/demo10action">用户名:<input type="text" name="name" /><br>年龄:<input type="text" name="age" /><br>生日:<input type="text" name="birthday" /><br>         <input type="submit" value="提交" />     </form>
jsp界面代码
public class demo10action extends actionsupport implements modeldriven<user> {//准备user 成员变量private user user =new user();public string execute() throws exception {                   system.out.println(user);        return success;     }     @overridepublic user getmodel() {return user;     } }
后台代码
四、集合类型参数封装
1.list和map
    <form action="${pagecontext.request.contextpath}/demo11action" method="post" >list:<input type="text" name="list" /><br>list:<input type="text" name="list[3]" /><br>map:<input type="text" name="map['haha']" /><br>         <input type="submit" value="提交" />     </form>
jsp界面代码
public class demo11action extends actionsupport  {//listprivate list<string> list;//mapprivate map<string,string> map;         public string execute() throws exception {                   system.out.println(list:+list);         system.out.println(map:+map);        return success;     }public list<string> getlist() {return list;     }public void setlist(list<string> list) {this.list = list;     }public map<string, string> getmap() {return map;     }public void setmap(map<string, string> map) {this.map = map;     } }
后台代码
五、练习:添加客户
注意:struts和hibernate包在合并时.javassist-3.18.1-ga.jar包是重复的,删除版本低的.
     实现步骤:
public class customeraction extends actionsupport implements modeldriven<customer> {private customerservice cs = new customerserviceimpl();private customer customer = new customer();    //添加客户public string add() throws exception {//1 调用service        cs.save(customer);//2 重定向到列表action方法return tolist;     } }
主要实现action代码
    <package name="crm" namespace="/" extends="struts-default" ><action name="customeraction_*" class="cn.itheima.web.action.customeraction" method="{1}" ><result name="list" >/jsp/customer/list.jsp</result><result name="tolist" type="redirectaction"> <param name="actionname">customeraction_list</param> <param name="namespace">/</param> </result></action></package>
struts.xml配置
以上就是分享关于javaee学习的知识点的详细内容。
其它类似信息

推荐信息