Tôi đã cố gắng để có được bộ điều khiển/xem cực kỳ đơn giản được thiết lập và không thể làm cho nó hoạt động. Trong số web.xml
của tôi, tôi đã xác định <servlet>
được gọi là servlet-context.xml
, đang chạy ok. Trong servlet-context.xml
, tôi đã đặt:Spring 3.0.6 MVC @PathVariable và @RequestParam trống/trống trong chế độ xem JSP
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
<...other stuff in here... />
<mvc:annotation-driven />
trong số những thứ khác. Sự hiểu biết của tôi là tất cả những gì cần thiết để sử dụng chú thích @
.
Trong điều khiển của tôi, tôi có:
@RequestMapping(value="/student/{username}/", method=RequestMethod.GET)
public String adminStudent(@PathVariable String username, @RequestParam String studentid) {
return "student";
}
Và trong student.jsp
quan điểm của tôi, tôi có:
<p>This is the page where you would edit the stuff for ${username}.</p>
<p>The URL parameter <code>studentid</code> is set to ${studentid}.</p>
Khi tôi thực hiện một yêu cầu đến http://localhost:8080/application/student/xyz123/?studentid=456
, tôi nhận được cái nhìn tôi mong đợi, nhưng tất cả các biến đều trống hoặc không có:
<p>This is the page where you would edit the stuff for .</p>
<p>The URL parameter <code>studentid</code> is set to .</p>
Tôi nghi ngờ đó là vấn đề với cách của tôi web.xml
hoặc servlet-context.xml
được thiết lập, nhưng tôi không thể tìm thấy thủ phạm ở bất cứ đâu. Không có gì hiển thị trong bất kỳ nhật ký nào mà tôi có thể thấy.
Cập nhật: Tôi đã căn cứ mã của tôi tắt phần này của spring-mvc-showcase:
@RequestMapping(value="pathVariables/{foo}/{fruit}", method=RequestMethod.GET)
public String pathVars(@PathVariable String foo, @PathVariable String fruit) {
// No need to add @PathVariables "foo" and "fruit" to the model
// They will be merged in the model before rendering
return "views/html";
}
... mà hoạt động tốt đối với tôi. Tôi không thể hiểu tại sao ví dụ này hoạt động nhưng tôi thì không. Có phải vì họ là doing something different với servlet-context.xml
?
<annotation-driven conversion-service="conversionService">
<argument-resolvers>
<beans:bean class="org.springframework.samples.mvc.data.custom.CustomArgumentResolver"/>
</argument-resolvers>
</annotation-driven>
Bạn nên chấp nhận câu trả lời của riêng mình vì đó là câu trả lời đúng. –