Bet*_*eto 4 java spring spring-mvc
我可以用Spring MVC做这样的事吗?
@RequestMapping(value = "/{root}")
public abstract class MyBaseController {
@PathVariable(value = "root")
protected ThreadLocal<String> root;
}
@Controller
public class MyController extends MyBaseController {
@RequestMapping(value = "/sayHello")
@ResponseBody
public String hello() {
return "Hello to " + this.root.get();
}
}
Run Code Online (Sandbox Code Playgroud)
当我要求时http://..../roberto/sayHello,我得到这个作为回应:
Hello to roberto
Run Code Online (Sandbox Code Playgroud)
小智 9
你可以像这样编码:
@RequestMapping("/home/{root}/")
public class MyController{
@RequestMapping("hello")
public String sayHello(@PathVariable(value = "root") String root, HttpServletResponse resp) throws IOException {
String msg= "Hello to " + root;
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.println(msg);
out.flush();
out.close();
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
并且,您可以将ModelAndView返回msg值用于jsp其他html页面.
未经测试,但您可以通过与HandlerMappingand 结合使用而成功,and HttpServletRequest是代理的bean,可以用作实例字段
@Controller
@RequestMapping("/user/{username}")
public class UsersController {
@Autowired
HttpServletRequest req;
@RequestMapping("/greet")
public String greet() {
return "Hello, " + username();
}
private String username() {
Map<String, String> variables = (Map<String, String>)
req.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
return variables.get("username");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6747 次 |
| 最近记录: |