1、功能分析:
思路顺序:管理员点击新增超链接,handler通过view-controller跳转到表单界面,输入新增数据,点击新增保存按钮向AdminHandler,handler将执行创建账号的操作,具体操作业务将跳转到AdminService中去实现,进行密码加密,接着进行保存,保存可能失败抛异常。
保存结果将返回值返回给handler,如果失败会交给异常映射去处理,如果成功则重定向到分页操作。
2、跳转到表单页面
<a href="admin/to/add/page.html" class="btn btn-primary" style="float:right;"><i class="glyphicon glyphicon-plus"></i>新增</a>
3、view-controller配置
<mvc:view-controller path="/admin/to/add/page.html" view-name="admin-add"/>
4、创建admin-add.jsp
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<ol class="breadcrumb">
<li><a href="admin/to/main/page.html">首页</a></li>
<li><a href="admin/query/for/search.html">数据列表</a></li>
<li class="active">新增</li>
</ol>
<div class="panel panel-default">
<div class="panel-heading">表单数据</div>
<div class="panel-body">
<form action="admin/save.html" method="post" role="form">
<div class="form-group">
<label for="exampleInputPassword1">登录账号</label>
<input
type="text"
name="loginAcct"
class="form-control"
id="exampleInputPassword1"
placeholder="请输入登陆账号">
</div>
<div class="form-group">
<label for="exampleInputPassword1">登录密码</label>
<input
type="text"
name="userPswd"
class="form-control"
id="exampleInputPassword1"
placeholder="请输入登陆密码">
</div>
<div class="form-group">
<label for="exampleInputPassword1">用户昵称</label>
<input
type="text"
name="username"
class="form-control"
id="exampleInputPassword1"
placeholder="请输入用户昵称">
</div>
<div class="form-group">
<label for="exampleInputEmail1">邮箱地址</label>
<input
type="email"
name="email"
class="form-control"
id="exampleInputEmail1"
placeholder="请输入邮箱地址">
<p class="help-block label label-warning">请输入合法的邮箱地址, 格式为: xxxx@xxxx.com</p>
</div>
<button type="submit" class="btn btn-success"><i class="glyphicon glyphicon-plus"></i> 新增
</button>
<button type="reset" class="btn btn-danger"><i class="glyphicon glyphicon-refresh"></i> 重置
</button>
</form>
</div>
</div>
</div>
5、执行保存操作——提交表单
6、转换抛出的异常:
@RequestMapping("/admin/save")
public String saveAdmin(Admin admin){
try{
adminService.saveAdmin(admin);
}catch (Exception e){
if (e instanceof DuplicateKeyException){
throw new RuntimeException(CrowdfundingConstant.MESSAGE_LOGIN_ACCT_ALREADY_IN_USE);
}
}
return "admin-add";
}
public static final String MESSAGE_LOGIN_ACCT_ALREADY_IN_USE = "该用户名也被使用,请重新设定!";
7、添加成功跳转到列表并显示添加的最新记录
(方案1):跳转到分页最后一页
(方案2):分页页面显示数据时根据id降序排列
来源:CSDN
作者:Java剑主
链接:https://blog.csdn.net/qq_41723615/article/details/103939818