Die Spring MVC-Steuerungsmethode kann zusätzlich zu den auf dem Bildschirm eingegebenen Parametern verschiedene Informationen als Argumente empfangen.
@Secured Durch Hinzufügen der Annotation "@ Secured" können Sie die Berechtigung für die URL angeben.
@Controller
@RequestMapping("/sbadmin2/")
@Secured("IS_AUTHENTICATED_FULLY")
public class SbAdmin2Controller {
@RequestMapping("/index.html")
public ModelAndView index() {
return new ModelAndView("SbAdmin2Controller/index");
}
@Secured("ROLE_STAFF")
@RequestMapping("/forms.html")
public ModelAndView forms() {
return new ModelAndView("SbAdmin2Controller/forms");
}
}
// /sbadmin2/index.Auf HTML kann zugegriffen werden, wenn Sie angemeldet sind
// /sbadmin2/forms.HTML-Login und Rolle_Zugriff, wenn STAFF-Berechtigungen zugewiesen wurden
@RequestParam Wenn Sie die Annotation "@ RequestParam" angeben, können Sie die in der URL enthaltenen Abfrageparameter und die im Nachrichtentext enthaltenen Post-Parameter erhalten.
@GetMapping("/hello")
public String hello(@RequestParam("name") String name) {}
// /hello?name=string
@RequestPart Wenn Sie die Annotation "@ RequestParam" angeben, können Sie Bild- / Videodateien und JSON empfangen.
@GetMapping("/hello")
public String hello(@RequestPart("data") String data) {}
const data = new FormData()
data.append('file', file)
data.append('jsonValue', new Blob([JSON.stringify(sampleObject)], {type : 'application/json'}))
axios.get('/hello', data)
@PathVariable Sie können die Annotation "@ PathVariable" angeben, um die in der URL enthaltenen dynamischen Parameter zu erhalten.
@GetMapping("/hello/{userId}")
public String hello(@PathVariable("userId") Integer userId) {
@RequestHeader Wenn Sie die Annotation "@ RequestHeader" angeben, können Sie jedes im Anforderungsheader enthaltene Element empfangen.
@GetMapping("/hello")
public String hello(@RequestHeader("User-Agent") String userAgent) {
RequestHeader
GET /hello?userId=10 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json
X-XSRF-TOKEN: 00000-000-0000-0000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Referer: http://localhost:8080/hello?userId=10
Accept-Encoding: gzip, deflate, br
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Cookie: [email protected];
JSESSIONID=sfdgfhgjh;
XSRF-TOKEN=00000-000-0000-0000
@RequestBody Wenn Sie die Annotation "@ RequestBody" angeben, können Sie den Inhalt des Anforderungshauptteils unverändert abrufen.
@PostMapping("/hello")
public String hello(@RequestBody String body) {
POST /hello HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 22
Cache-Control: max-age=0
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://localhost:8080/hello
Accept-Encoding: gzip, deflate, br
Accept-Language: ja,en-US;q=0.8,en;q=0.6
user=scott&password=tiger
@DateTimeFormat
Geben Sie die Annotation @ DateTimeFormat
an, um das Format der Zeichenfolgendarstellung des empfangenen Datums und der empfangenen Uhrzeit anzugeben.
@GetMapping("/hello/{date}")
public String hello(@PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) java.util.Date date) {}
@Autowired Es werden automatisch Beans eingefügt, die dem Typ des angegebenen Felds entsprechen. Wenn mehrere Beans den Typ erfüllen, können sie mithilfe der Annotation @Qualifier eindeutig identifiziert werden.
Referenz: Überprüfung des Unterschieds zwischen @Autowired, @Inject, @Resource @Validated Geben Sie die Annotation "@ Validated" an, um die Validierung zu aktivieren.
@PostMapping("/hello")
public String hello(@RequestBody @Validated String name)
@AuthenticationPrincipal Geben Sie die Annotation "@ AuthenticationPrincipal" an, damit die authentifizierten Benutzerinformationen automatisch an das Argument übergeben werden.
@RequestMapping("/hello")
public String hello(@AuthenticationPrincipal AppUserDetail userDetail) {
log.info("debug: {}", userDetail);
return "user";
}
Recommended Posts