springmvc--注解crud

String getList: 获取列表数据 -- 转到列表页面
String toAddUI:直接转到添加页面
String toUpdateUI:根据id获取对象数据 -- 转到编辑页面
deleteById:直接删除 -- 重定向到list方法-列表页

getById:toUpdateUI的时候需要根据id获取对象
saveOrUpdate:更新之后 -- 重定向到list方法-列表页

 

@Controller
@RequestMapping("/person")
public class PersonController {
		
	@Resource
	private PersonService ps; 
}
@Service
public class PersonService {
	private static Map<Integer,Person> pMap = new HashMap<Integer, Person>();
	private static Integer id = 1;
	
	static{
		Person p = null;
		for (int i = 0; i < 10; i++) {
			p = new Person();
			p.setId(id);
			p.setAge(21+i);
			p.setName("jack"+i);
			pMap.put(id, p);
			id++;
		} 
	}

	// 列表  
	public List<Person> getAllPerson() {
		return new ArrayList<Person>(pMap.values());
	}
	
	// 获取一个对象
	public Person getPersonById(Integer id) {
		return pMap.get(id);
	}

	// 保存
	public void save(Person p) {
		if(p.getId() == null){
			// add id==null
			id++;
			p.setId(id);
		}
		pMap.put(p.getId(), p);
	}

	public void deleteById(Integer id2) {
		pMap.remove(id2);
		
	}
}
 
以下都是PersonController和相对应的jsp代码
----- 列表 -----
/**如果参数是Map<String,Object> model,model.put("personList2", personList2);
	 * 在jsp页面<c:forEach items="${personList2 }" var="p">
	 * items中和put的String值一样就行
	 * @param model
	 * @return
	 */
	@RequestMapping("/list")
	public String list(Map<String,Object> model){
		List<Person> personList2 = ps.getAllPerson();
		model.put("personList2", personList2);
		return "person/list";
	}
	
/**如果参数是Model model,model.addAttribute(p);
	 * <c:forEach items="${personList }" var="p">
	 * 无论model.addAttribute(Object);Object是什么值,在items中都是POJO + List(personList,person小写,大写不行)
	 * @param model
	 * @return
	 */
	@RequestMapping("/list2")
	public String list(Model model){
		List<Person> p = ps.getAllPerson();
		model.addAttribute(p);
		return "person/list";
	} 
   	<h2>用户列表</h2>
   	<a href="${pageContext.request.contextPath}/person/toAddUI.action">new</a>
   	<table width=60% border=1>
   		<tr>
   			<th>id</th>
   			<th>name</th>
   			<th>age</th>
   			<th>op1</th>
   			<th>op22</th>
   		</tr> 
   		<c:forEach items="${personList }" var="p">
   			<tr>
	   			<td>${p.id}</td>
	   			<td>${p.name }</td>
	   			<td>${p.age }</td>
	   			<td><a href="${pageContext.request.contextPath}/person/toUpdateUI2.action?id=${p.id }">修改</a></td>
	   			<td><a href="${pageContext.request.contextPath}/person/delete.action?delId=${p.id }">删除</a></td>
   			</tr> 
   		</c:forEach>
   	</table>




 
 
----- 编辑1  使用Model传入到spring标签中 -----
/**修改:需要根据id获取修改对象,然后将对象传到页面
	 * @param id
	 * @param model
	 * @return
	 */
	@RequestMapping("/toUpdateUI")
	public String toUpdateUI(Integer id,Model model){
		Person p = ps.getPersonById(id);
		model.addAttribute(p);
		return "person/updateUI";
	}
-- jsp --
 <%@taglib prefix="sf" uri="http://www.springframework.org/tags/form"%><pre name="code" class="java"><body>

	<h2>用户修改</h2>
	<sf:form action="${pageContext.request.contextPath }/person/save.action" 
			method="post" modelAttribute="person">
		<table width=60px border=1>
			<tr>
				<td>id</td>
				<td> <sf:input path="id"/> </td>
			</tr>
			<tr>
				<td>name</td>
				<td> <sf:input path="name"/> </td>
			</tr>
			<tr>
				<td>age</td>
				<td> <sf:input path="age"/> </td>
			</tr>
			<tr> 
				<td colspan="2"><input type="submit"/></td>
			</tr>
			
		</table>
	</sf:form>
</body>

 ------ 编辑2 使用request传值,在jsp中使用el不使用spring标签库------ 
 
 
----- save ------ 
 

----- delete ------ 

@RequestMapping("/toUpdateUI2")
	public String toUpdateUI(Integer id,HttpServletRequest request){
		Person p = ps.getPersonById(id);
		request.setAttribute("p", p);
		return "person/updateUI2";
	}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值