Java微型博客系统——账号和文章的删改功能的实现
实现了之前项目的账号和文章内容的删改。接下来计划实现评论功能的开发。
写在前面
由于文件越写越多,堆在一起实在不是很方便管理,所以将文件按照功能的类型给了分类。
以客户端为例:
这样分开的化会比较的清晰。(但是分层的知识我学的还不是很深,之后打算学一下其它优秀的分层,比如说dubbo的分层架构)
账号的修改
账号的修改主要是修改账号的账号、昵称、密码。
我们每次修改账号信息的时候当然不希望把账号所有的东西都改一边,而是需要修改什么则修改什么,基于这种修改的思想,我完成了账号的修改功能
前端界面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>修改您的账号信息</title>
</head>
<body>
<h2>修改您的账号信息</h2>
<form action="/zhz/editAccount" method="get">
注意:如果不想修改某项,则直接空缺即可。<br/>
原昵称:<strong th:text="${userName}"></strong><br/>
新昵称:<input type="text" name="newUserName" placeholder="请输入您的新昵称"><br/>
原账号:<strong th:text="${userAccount}"></strong>
账号:<input type="text" name="newUserAccount" placeholder="请输入您的新账号"><br/>
原始密码:<input type="password" name="userPassword" placeholder="请输入您的原始密码"><br/>
修改后的密码:<input type="password" name="newUserPassword1" placeholder="请再输入您的新密码"><br/>
修改后的密码:<input type="password" name="newUserPassword2" placeholder="请再输入您的新密码"><br/>
<p th:text="${callback}"></p>
<input type="text" name="submit" value="1" hidden>
<input type="submit" value="确定">
<input type="reset" value="重置">
</form>
</body>
</html>
效果图:
控制层
为了节省一个控制,这一个控制器实现了转发到修改界面和修改后的操作集成在一起。好处是少了一个controller,缺点是功能杂糅在一起。
细心的朋友可以注意到前端代码中,提交的时候提交了一个“submit”=“1”的值,就是为了区分两个功能。
package com.zhz.f.client.controller.account;
import com.zhz.f.api.service.MyData;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@Controller
public class EditAccountController {
@DubboReference
MyData myData;
@RequestMapping("/zhz/editAccount")
public String editAccount(HttpServletRequest request, Model model) {
HttpSession session = request.getSession();
String userAccount = (String) session.getAttribute("userAccount");
String userName = myData.getUserNameByAccount(userAccount);
model.addAttribute("userAccount", userAccount);
model.addAttribute("userName", userName);
//如果前端没有传入数据,则进入修改界面
if (!"1".equals(request.getParameter("submit"))) {
return "/account/editAccount";
}
//如果输入了数据,则进行修改
String newUserName = request.getParameter("newUserName");
String newUserAccount = request.getParameter("newUserAccount");
String password = request.getParameter("userPassword");
String newPassword1 = request.getParameter("newUserPassword1");
String newPassword2 = request.getParameter("newUserPassword2");
//为了看着舒服,将空的字符制为null,当然直接用“”来进行下面的一系列判断也是可以的
if (newUserName.equals("")) newUserName