Controller Responsibilities
- Interpret user input and transform to input to a model
- Provide access to business logic
- Determines view based off of logic
- Interprets Exceptions from the business logic / service tier
Controller Annotations
Parameter Passing
-----------------------------------------------------------
Model Attribute
@ModelAttribute
- Used with an HTTP GET
- Used with an HTTP POST
- Works with POJOs
- Can be validated with a Binding Result
---------------------------------------------------------
Demo: Post Data of Controller
/WEB-INF/jsp/addMinutes.jsp
tablib -> from
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Add Minutes</title>
</head>
<body>
<form:form commandName="exercise">
<table>
<tr>
<td>Minutes Exercise For Today:</td>
<td>
<form:input path="minutes"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Enter Exercise"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
com.pluralsight.model.Exercise
com.pluralsight.controller.MinutesController
package com.pluralsight.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import com.pluralsight.model.Exercise;
@Controller
public class MinutesController {
@RequestMapping(value = "/addMinutes")
public String addMinutes(@ModelAttribute("exercise") Exercise exercise) {
System.out.println("exercise: " + exercise.getMinutes());
return "addMinutes";
}
}
http://localhost:8755/TestFitness/addMinutes.html
---------------------------------------------------------
Summary
- Controller duties
- Annotations
Controller
RequestMapping
ModelAttribute
---------------------------------------------------------
View
https://blog.csdn.net/u012596785/article/details/79922422