netbeans怎么使用html框架,Spring Web MVC 简介

*注:*SimpleFormController 在 Spring 3.x 中已过时。在本教程中使用它是出于演示目的。但是,应使用标注的控制器而非 XML 文件。

按 Ctrl-N 组合键(在 Mac 上按 ⌘-N 组合键)打开新建文件向导。在 "Categories"(类别)下,选择 Spring Framework;在 "File Types"(文件类型)下,选择 Simple Form Controller(简单窗体控制器)。

simple-form-controller.png

Figure 7. NetBeans IDE 为各种 Spring 工件提供模板

NetBeans IDE 为各种 Spring 工件(包括 Spring XML 配置文件、`AbstractController` 和 `SimpleFormController`)提供了模板。

单击 "Next"(下一步)。

将该类命名为 HelloController 并通过在 "Package"(包)文本字段中键入 controller 为其创建一个新的包。单击 "Finish"(完成)。IDE 将创建新类,并在编辑器中打开该类。

通过取消注释 setter 方法(默认情况下,在类模板中显示)来指定控制器属性。要取消注释代码片段,请突出显示该代码(如下图所示),然后按 Ctrl-/ 组合键(在 Mac 上按 ⌘-/ 组合键)。

comment-out.png

Figure 8. 突出显示代码片段,然后按 Ctrl-/ 以开启/关闭注释

按 Ctrl-/ 组合键(在 Mac 上按 ⌘-/ 组合键)可在编辑器中开启/关闭注释。

进行以下更改(以*粗体*显示)。

public HelloController() {

link:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html#setCommandClass(java.lang.Class)[+setCommandClass+](*Name*.class);

link:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html#setCommandName(java.lang.String)[+setCommandName+]("*name*");

link:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html#setSuccessView(java.lang.String)[+setSuccessView+]("*hello*View");

link:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/SimpleFormController.html#setFormView(java.lang.String)[+setFormView+]("*name*View");

}

设置 FormView 使您能够设置用于显示窗体的视图的名称。这是包含允许用户输入其名称的文本字段的页面。同样,设置 SuccessView 允许您设置在成功提交时应该显示的视图的名称。当设置 CommandName 时,在模型中定义命令的名称。在本例中,命令就是将请求参数绑定到自身的窗体对象。设置 CommandClass 允许您设置命令类的名称。填充该类的一个实例并在每个请求上验证它。

注意在 setCommandClass() 方法中为 Name 标记了一个错误:

set-command-class.png

Figure 9. 为 setCommandClass() 显示错误标记

现在,您需要创建 Name 类作为简单 Bean 以包含每个请求的信息。

在 "Projects"(项目)窗口中,右键单击项目节点并选择 "New"(新建)> "Java Class"(Java 类)。此时将显示新建 Java 类向导。

在 "Class Name"(类名)中输入 Name,从 "Package"(包)的下拉列表中选择 controller。

单击 "Finish"(完成)。Name 类随即创建,并在编辑器中打开。

对于 Name 类,创建一个名为 value 的字段,然后为该字段创建存取方法(即,getter 和 setter 方法)。首先声明 value 字段:

public class Name {

*private String value;*

}

要快速键入 “private”,您可以键入 “pr”,然后按 Tab 键。“private” 访问修饰符会自动添加到该行。这是使用编辑器代码模板的一个示例。要获得代码模板的完整列表,请选择 "Help"(帮助)> "Keyboard Shortcuts Card"(快捷键列表)。

IDE 可以为您创建存取方法。在编辑器中,右键单击 value,然后选择 "Insert Code"(插入代码)(或按 Alt-Insert 组合键;在 Mac 上按 Ctrl-I 组合键)。在弹出式菜单中,选择 "Getter and Setter"(getter 和 setter)。

generate-code.png

Figure 10. 通过

在显示的对话框中,选择 value : String 选项,然后单击 "OK"(确定)。getValue() 和 setValue() 方法会添加到 Name 类中:

public String getValue() {

return value;

}

public void setValue(String value) {

this.value = value;

}

按 Ctrl-Tab 组合键并选择 HelloController 以切换回 HelloController 类。请注意,以前的错误标记已经消失,因为现在存在 Name 类。

删除 doSubmitAction() 方法并取消注释 `onSubmit()` 方法。使用 onSubmit() 方法,您可以创建自己的 ModelAndView,此处需要这样做。进行以下更改:

@Override

protected ModelAndView onSubmit(

HttpServletRequest request,

HttpServletResponse response,

Object command,

BindException errors) throws Exception {

Name name = (Name) command;

ModelAndView mv = new ModelAndView(getSuccessView());

mv.addObject("helloMessage", helloService.sayHello(name.getValue()));

return mv;

}

如上所述,将 command 重塑为 Name 对象。创建 ModelAndView 的一个实例,并且在 SimpleFormController 中使用 getter 获取成功视图。最后,用数据填充模型。我们模型中的唯一项就是从以前创建的 HelloService 中获取的 hello 消息。使用 addObject 方法将此 hello 消息添加到名称 helloMessage 下的模型中。

在编辑器中单击鼠标右键并选择 "Fix Imports"(修复导入)(Ctrl-Shift-I 组合键;在 Mac 上为 ⌘-Shift-I 组合键)以修复导入错误。

fix-imports70.png

Figure 11. 按 Ctrl-Shift-I 修复文件中的导入

*注:*确认在 "Fix All Imports"(修复所有导入)对话框中选择了 * org.springframework.validation.BindException * 和 * org.springframework.web.servlet.ModelAndView *。

单击 "OK"(确定)。向文件顶部添加以下导入语句:

import link:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/ModelAndView.html[+org.springframework.web.servlet.ModelAndView+];

如 API 文档中所述,此类“表示处理程序返回的要由 DispatcherServlet 解析的模型和视图。视图可以采用需要由 ViewResolver 对象解析的 String 视图名称格式;或者,也可以直接指定 View 对象。模型是一个 Map,允许使用按照名称键入的多个对象。”

请注意,此时并未修复所有错误,因为该类仍然无法识别 HelloService 类,也不能使用其 sayHello() 方法。

在 HelloController 中,声明一个名为 HelloService 的私有字段:

private HelloService helloService;

然后为该字段创建一个公用的 setter 方法:

public void setHelloService(HelloService helloService) {

this.helloService = helloService;

}

最后,在编辑器中单击鼠标右键,然后选择 "Fix Imports"(修复导入)(Ctrl-Shift-I 组合键;在 Mac 上为 ⌘-Shift-I 组合键)。以下语句将添加到文件顶部:

import service.HelloService;

现在应该修复了所有错误。

在 applicationContext.xml 中注册 HelloService。在编辑器中打开 applicationContext.xml,然后输入以下 Bean 声明:

IDE 中的 Spring 支持包括 XML 配置文件中 Java 类以及 Bean 引用的代码完成。要调用代码完成,请在使用编辑器时按 Ctrl-空格键:

code-completion.png

Figure 12. 按 Ctrl-空格键时调用的代码完成

在 dispatcher-servlet.xml 中注册 HelloController。在编辑器中打开 dispatcher-servlet.xml,然后输入以下 Bean 声明:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值