用户地址管理是从cart进入,所以找到相应的地址页面WebContent\WEB-INF\HTML1\shop\cart\cart-1.html。管理用户地址是在修改用户信息,所以找到对应的controller,即GuestController.java的value="initEditGuest",所以我们需要将cart-1.html中的<a href="cart-1.html"></a>改为<a th:href="@{initEditGuest}"></a>就能顺利进入address.html页面。
找到相应的地址页面WebContent\WEB-INF\HTML1\shop\address.html,进行以下操作:
将头文件修改为themyleaf视图解析器能够解析的html页面
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
由于html要求页面标签必须成对出现,那么需要完善标签,本例需要修改的有
<meta><link><img><input>加反斜杠 \
此时看到的页面排版比较不好看,修改css的href用我们准备的css1, js使用src用我们准备的js1里的样式。同时GuestController.java中全部的 return “/editGuest”; 改为 return “/address”;
address.html页面里的<a th:href="adress.html"></a>改为<a th:href="@{EditGuest}"></a>,我们就能顺利进入用户信息修改页面了。以上只是让我们能看到管理地址页面,下面才是正式修改。
进入正题:
一个用户可以对应多个地址。在数据库agriculture中创建一个表address,字段名有address_id guest_id receive_address receive_name receive_mobile receive_post receive_phone。
新建一个ReceiveForm,
package cn.agriculture.web.form;
import lombok.Data;
import cn.agriculture.common.validator.constraints.NotEmpty;
@Data
public class ReceiveForm {
@NotEmpty(field="用户ID", message="{errors.required}")
private String guestId;
private String addressId;
private String receiveAddress;
private String receiveName;
private String receiveMobile;
private String receivePost;
private String receivePhone;
}
新建ReceiveSqlMap
在SqlMapConfig.xml一定别忘记加入映射资源文件,否则会出现错误“There is no statement named Received...”.
新建Service.java
新建GuestController
未完待续。