热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

struts简单配置运用做一个简单的注册

一:配置好hibernate1.导包hibernate包和jdbc连接mysql数据库的包2.实用工具生成hibernate配置文件和映射文件3.做好hibernat

一:配置好hibernate
1.导包 hibernate包和jdbc连接mysql数据库的包
2.实用工具生成hibernate配置文件和映射文件
3.做好hibernateUtil生成session的静态单例配置文件
二:编写数据访问
DAO添加、查询

package com.itnba.maya.model;import java.math.BigDecimal;import org.hibernate.Session;public class LoginDao {public Login select(String username){Session session = null;Login data = null;try{session = HibernateUtil.getSession();data = session.get(Login.class, username); }catch(Exception e){e.printStackTrace();}finally {HibernateUtil.closeSession();}return data;}public void insert(String username, String name ,String password,BigDecimal account){Session session = null;try{session = HibernateUtil.getSession();Login data = new Login();data.setUserName(username);data.setName(name);data.setPassword(password);data.setAccount(account);session.beginTransaction();session.save(data);session.getTransaction().commit();}catch(Exception e){e.printStackTrace();session.getTransaction().rollback();}finally {HibernateUtil.closeSession();}}
}

三:配置struts
1.导包 空白包、jstl包

在apps文件夹下将struts-blank.war复制粘贴将后缀改为rar格式,解压到这个目录下,这样就生成了一个空白的项目,这里边的WEB-INF文件下lib里边的jar包就是我们struts所需要必须的jar包,另外如果需要用jstl标签,就把jstl的jar包也导入我们项目的WEB-INF文件下的lib中

2.配置web.xml()

 这里的web.xml一样是刚刚生成的空白项目中的WEB-INF文件下的空白web.xml文件,复制粘贴到项目中,将我们不需要用的删除即可,只留下我们需要的内容如下:


Struts Blankstruts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*index.html

四:界面和控制器
(一)做视图
做三个界面 reg.jsp(注册界面) reg_ok.jsp(成功界面) reg_error.jsp(失败界面)

(二)两个类

一个只是为了跳转注册页面

代码如下:

package com.itnba.maya.controller;import com.opensymphony.xwork2.ActionSupport;public class IndexAction extends ActionSupport {@Overridepublic String execute() throws Exception {return SUCCESS;}
}

另一个是做个RegAction的类 四个成员变量(获取form表单数据)

代码如下:

package com.itnba.maya.controller;import java.math.BigDecimal;import com.itnba.maya.model.Login;
import com.itnba.maya.model.LoginDao;
import com.opensymphony.xwork2.ActionSupport;public class RegAction extends ActionSupport {private String username;private String name;private String password;private BigDecimal account;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public BigDecimal getAccount() {return account;}public void setAccount(BigDecimal account) {this.account = account;}@Overridepublic String execute() throws Exception {Login data = new LoginDao().select(username);if(data==null){new LoginDao().insert(username, name, password, account);return SUCCESS;}else{return ERROR;}}
}

重写execute方法,调用数据访问查询看下是否存在 存在return error 不存在return success
(三)配置struts.xml
action 1 跳转注册页面
action 2 name="reg" 和类名、页面名对应起来 指向RegAction.class 两个result 一个成功一个失败

代码如下:


reg.jspreg_ok.jspreg_error.jsp

运行struts.xml,将地址改为index即可显示注册页面

输入已有的账号显示如下:

输入没有注册过的账号显示如下:

这样一个简单的注册就做完了。

简单方法:

 在struts.xml中配置:


//*_*这是通配符,如果用这种方法就需要命名规范,不能随便命名                                  //{1}、{2}对应之前的*,{1}是指Action的前缀名,{2}是指Action中的方法名{1}_{2}.jsp                                      {1}_{2}_error.jsp

Action中的代码如下:

package com.itnba.maya.controller;import java.math.BigDecimal;import com.itnba.maya.model.Login;
import com.itnba.maya.model.LoginDao;
import com.opensymphony.xwork2.ActionSupport;public class RegAction extends ActionSupport {private String username;private String name;private String password;private BigDecimal account;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public BigDecimal getAccount() {return account;}public void setAccount(BigDecimal account) {this.account = account;}public String add(){                 //这个方法是跳转页面return SUCCESS;}public String insert(){Login data = new LoginDao().select(username); //这个方法是接收数据,处理数据,并根据判断跳转其他页面if(data==null){new LoginDao().insert(username, name, password, account);return SUCCESS;}else{return ERROR;}}
}

相应的jsp的命名一定要规范:

在第一次跳转页面时form表单跳转的地址也随之改变:

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"pageEncoding&#61;"UTF-8"%>








注册账号&#xff1a;
真实姓名&#xff1a;
登录密码&#xff1a;
账户余额&#xff1a;



结果和之前的方法是一样的 这里就不再展示了。

转:https://www.cnblogs.com/dnf1612/p/6542504.html



推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
author-avatar
宅囧2502881733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有