structs2初学之与hibernate组合之增删改查

structs2初学之与hibernate结合之增删改查

今天主要讲的是struts2hibernate相结合的用户的增删改查,主要应用了struts2的基本应用,复习了hibernate的基本方法;

关于struts2的运行方式

客户端----->web容器--->web.xml-->struts2过滤器--->struts.xml--->Action--->model--->数据库

 <------------------------------------------------|

Action  要想把数据 传递给jsp

首先创建一个私有的变量:

     private String username;

利用get方法

      public String getUsername(){return username;}

     通过什么方式传递 

  

   <result 

type="dispatcher" name="success">/manager/index.jsp</result>

jsp页面中使用$符号

Jsp =---〉 ${username}

<package name="csdn" namespace="/test" extends="struts-default">

        <action name="helloworld" class="cn.csdn.action.HelloWorldAction" method="execute" >

<result name="success">/WEB-INF/page/hello.jsp</result>

        </action>

  </package> 

1>如果没有为action指定class,默认是ActionSupport

2>如果没有为action指定method,默认执行action中的execute() 方法。

3>如果没有指定resultname属性,默认值为success

Struts2中结果集类型

   

1、 每个action方法都返回一个String类型的值,struts一次请求返回什么值是由这个值确定的。

2、 在配置文件中,每一个action元素的配置都必须有result元素,每一个result对应一个action的返回值。

3、 Result有两个属性:

name:结果的名字,和action中的返回值一样,默认值为success;

type:响应结果类型,默认值为dispatcher.

在下面找到struts-default.xml文件中,如下面所示:

structs2初学之与hibernate组合之增删改查

 

            

说明:

1、 从上述可以看出总共10种类型

2、 默认类型为ServletDispatcherResult即转发。

3、 结果类型可以是这10种结果类型的任意一种。

<action name="helloworld" class="cn.csdn.action.HelloWorldAction">

<result name="success">/WEB-INF/page/hello.jsp</result>

</action>

result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值)、 redirect 、 redirectAction 、 plainText

下面是redirectAction 结果类型的例子,如果重定向的action中同一个包下: 

<result type="redirectAction">helloworld</result>

如果重定向的action在别的命名空间下:

<result type="redirectAction">

<param name="actionName">helloworld</param>

<param name="namespace">/test</param>

</result>

plaintext:显示原始文件内容,例如:当我们需要原样显示jsp文件源代码 的时候,我们可以使用此类型。

<result name="source" type="plainText ">

<param name="location">/xxx.jsp</param>

<param name="charSet">UTF-8</param><!-- 指定读取文件的编码 -->

</result>

result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。如下:

<result type="redirect">view.jsp?id=${id}</result>

struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <include file="struts-admin.xml"/>

</struts>

struts-admin.xml文件

<?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="admin" namespace="/hbsi" extends="struts-default">

<action name="adminLogin" class="www.hbsi.StrutsProject.action.AdminAction"

method="login">

<result name="success">/manager/sc.jsp</result>

<result name="login">/index.jsp</result>

</action>

<action name="insertObject" class="www.hbsi.StrutsProject.action.AdminAction"

method="insert">

<result name="success" type="redirectAction">

<param name="actionName">getAll.action</param>

</result>

</action>

<action name="getAll" class="www.hbsi.StrutsProject.action.AdminAction"

method="getAll">

<result name="success">/manager/getAll.jsp</result>

</action>

<action name="getObject" class="www.hbsi.StrutsProject.action.AdminAction"

method="getObject">

<result name="success">/manager/getObject.jsp</result>

</action>

<action name="deleteObject" class="www.hbsi.StrutsProject.action.AdminAction"

method="deleteObject">

<result name="success" type="redirectAction">

 <param name="actionName">getAll.action</param>

</result>

</action>

<action name="findObject" class="www.hbsi.StrutsProject.action.AdminAction"

method="findObject">

<result name="success">

/manager/update.jsp

</result>

</action>

<action name="updateObject" class="www.hbsi.StrutsProject.action.AdminAction"

method="updateObject">

<result name="success" type="redirectAction">

 <param name="actionName">getAll.action</param>

</result>

</action>

</package>

</struts>

AdminAction

public class AdminAction extends ActionSupport {

private String adminEmail;

private String adminName;

private String adminPass;

private Admin entity;

private List<Admin> entitys;

private Integer id;

AdminService adminService = new AdminServiceImpl();

    public void setId(Integer id) {

this.id = id;

}

public List<Admin> getEntitys() {

return entitys;

}

public void setEntitys(List<Admin> entitys) {

this.entitys = entitys;

}

public Admin getEntity() {

return entity;

}

public AdminService getAdminService() {

return adminService;

}

public void setAdminService(AdminService adminService) {

this.adminService = adminService;

}

public String getAdminName() {

return adminName;

}

public String getAdminPass() {

return adminPass;

}

public Integer getId() {

return id;

}

public void setEntity(Admin entity) {

this.entity = entity;

}

}

public void setAdminName(String adminName) {

this.adminName = adminName;

}

public void setAdminPass(String adminPass) {

this.adminPass = adminPass;

}

public String getAdminEmail() {

return adminEmail;

}

public void setAdminEmail(String adminEmail) {

this.adminEmail = adminEmail;

}

public String login() {

         entity = adminService.login(adminNameadminPass);

         if(entity!=null){

         return SUCCESS;

         }else{

         return LOGIN;

         }

}

    public String insert(){

    entity = new Admin(adminName,adminPass,adminEmail);

    adminService.saveObject(entity);

    return SUCCESS;

    }

    public String getAll(){

    entitys = adminService.getAllObjects(Admin.class);

    return SUCCESS;

    }

public String getObject(){

    entity = adminService.getObjectById(Admin.classid);

    return SUCCESS;

    }

    public String deleteObject(){

      adminService.deleteObjectById(id);

    return SUCCESS;

    }

    public String findObject(){

    

    entity = adminService.getObjectById(Admin.classid);

    return SUCCESS;

    }

    

    public String updateObject(){

     entity = adminService.getObjectById(Admin.classid);

     

     entity.setAdminEmail(adminEmail);

     entity.setAdminName(adminName);

     adminService.updateObject(entity);

    

    return SUCCESS;

    }

剩下的基本上都是hibernate的内容,就暂且不写了,内容太多。。达到的效果如下:

登陆窗口

structs2初学之与hibernate组合之增删改查

登陆成功:

structs2初学之与hibernate组合之增删改查

查看所有:

structs2初学之与hibernate组合之增删改查

更新:

structs2初学之与hibernate组合之增删改查

查看详情:

structs2初学之与hibernate组合之增删改查