博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring学习笔记——Spring MVC表单控制器(SimpleFormController)
阅读量:4358 次
发布时间:2019-06-07

本文共 3515 字,大约阅读时间需要 11 分钟。

如果每次传入参数都使用HttpServletRequest获取页面元素的值,假如要获取的页面元素值很少时,可以这样做,如果页面元素很多,就要使用很多的HttpServletRequest.getParameter(),显得很繁琐。为了解决这个问题,Spring提供了表单控制器SimpleFormController,把页面form中的元素名称设定为和Bean中的一样,传入的时候,Spring就会自动抓取form中和Bean名称一样的元素值,把它转换成一个Bean,使开发人员可以方便地使用。

Project的目录结构如下:

2011031012155233.png

(1)提交form的页面input.jsp

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
 
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
<
html
>
<
head
>
<
title
>
第一个SpringMVC实例
</
title
>
</
head
>
<%
String
str
=
(
String
) request.getAttribute(
"
helloWorld
"
);
%>
<
body
>
<
form
name
="HelloWorld"
action
="/myApp/helloWorld.do"
method
="post"
>
欢迎语
<
input
name
="msg"
type
="text"
/>
<
br
/>
<
input
type
="submit"
value
="提交"
/>
</
form
>
</
body
>
</
html
>

(2)输出提交内容的页面show.jsp

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
 
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
<
html
>
<
head
><
title
>
第一个SpringMVC实例
</
title
></
head
>
<%
String
str
=
(
String
)request.getAttribute(
"
yourWords
"
);
%>
<
body
>
你输入的欢迎语是:
<
H1
>
<%
=
str
%>
</
H1
>
</
body
>
</
html
>

(3)用来存放提交内容更的类HelloWorld.java,注意它有个字段private String msg,是与input.jsp中form表单里的元素名称一致的

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
 
package
com.jp.action;
public
class
HelloWorld {
private
String msg
=
null
;
public
String getMsg() {
return
msg;
}
public
void
setMsg(String msg) {
this
.msg
=
msg;
}
}

(4)Web.xml的配置与上一篇文章中提到的一样,这里需要修改dispatcherServlet-servlet.xml的内容

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
 
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans
>
<!--
定义映射
-->
<
bean
id
="urlMapping"
class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
>
<
property
name
="mappings"
>
<
props
>
<
prop
key
="helloWorld.do"
>
helloWorldAction
</
prop
>
</
props
>
</
property
>
</
bean
>
<!--
定义视图 及JSP路径
-->
<
bean
id
="viewResolver"
class
="org.springframework.web.servlet.view.InternalResourceViewResolver"
>
<
property
name
="viewClass"
>
<
value
>
org.springframework.web.servlet.view.InternalResourceView
</
value
>
</
property
>
<!--
定义JSP存放的路径
-->
<
property
name
="prefix"
>
<
value
>
/jsp/
</
value
>
</
property
>
<!--
定义JSP页面后缀
-->
<
property
name
="suffix"
>
<
value
>
.jsp
</
value
>
</
property
>
</
bean
>
<!--
定义控制器
-->
<
bean
id
="helloWorldAction"
class
="com.jp.action.SimpleFormControllerAction"
>
<
property
name
="commandClass"
>
<
value
>
com.jp.action.HelloWorld
</
value
>
</
property
>
<
property
name
="viewPage"
>
<
value
>
show
</
value
>
</
property
>
</
bean
>
</
beans
>

(5)修改控制器代码,使其继承SimpleFormController,SimpleFormControllerAction.java代码如下

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
 
package
com.jp.action;
import
java.util.HashMap;
import
java.util.Map;
import
org.apache.log4j.Logger;
import
org.springframework.web.servlet.ModelAndView;
import
org.springframework.web.servlet.mvc.SimpleFormController;
public
class
SimpleFormControllerAction
extends
SimpleFormController{
private
Logger logger
=
Logger.getLogger(
this
.getClass().getName());
private
String viewPage;
public
String getViewPage() {
return
viewPage;
}
public
void
setViewPage(String viewPage) {
this
.viewPage
=
viewPage;
}
//
重写onSubmit方法
public
ModelAndView onSubmit(Object command)
throws
Exception{
HelloWorld helloWorld
=
(HelloWorld)command;
Map model
=
new
HashMap();
//
new String...是用来解决中文乱码问题
model.put(
"
yourWords
"
,
new
String(helloWorld.getMsg().getBytes(
"
iso-8859-1
"
),
"
utf-8
"
));
//
返回依赖注入定义的页面
return
new
ModelAndView(getViewPage(),model);
}
}

最后,在浏览器中打开 ,输入“早上好”,点击提交,可得到下面的结果

2011031012251530.png

转载于:https://www.cnblogs.com/alexrain/archive/2011/03/10/1979661.html

你可能感兴趣的文章
C#获取枚举描述
查看>>
.NET (C#) Internals: ASP.NET 应用程序与页面生命周期(意译)
查看>>
值语义与对象语义
查看>>
查找(二叉排序树)
查看>>
iphone UI 开发教程
查看>>
17.10.24 数据最水的一次考试
查看>>
python_SMTP and POP3
查看>>
lambda匿名函数
查看>>
js常用方法
查看>>
建造者模式
查看>>
Spring入门教程:通过MyEclipse开发第一个Spring项目
查看>>
【转】你可能不知道的Shell
查看>>
廖雪峰Java1-2程序基础-1基本结构
查看>>
golang下的grpc
查看>>
1. 自动化运维系列之Cobbler自动装机
查看>>
ASP.NET MVC Model绑定(二)
查看>>
一步一步写算法(之hash表)
查看>>
漫谈并发编程(一) - 并发简单介绍
查看>>
JDBC连接MySQL数据库及演示样例
查看>>
Beta 冲刺(1/7)
查看>>