- 浏览: 373837 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ouyida3:
sslaowan,新春快乐,祝你阖家安康狗年大吉:)
【转载】js定义对象 -
qinghechaoge:
感谢分享,受教了
DCloud下拉刷新上拉加载 -
zero鹏:
...
Spring中的AOP -
xuyiooo:
新浪微博很适合高并发,实时性很高的网站参考的
[zz]新浪微博技术架构分析 -
liuxiang00435057:
基于这种风格的权限怎么去控制呢,精确的每个方法
Spring3.0新特征-Restful support MVC
设计思路参考昨天写的《关于RCP与Web交互的一些设计思路 》,使用了Spring MVC,特别使用了Spring对于CoC(Convention over Configuration,惯例优先原则)的支持,由于需要富文本编辑器,因此我选择了著名的FCKEditor。由于我不需要支持上传功能,因此没有用FCKEditor的Java包。
虽然我使用的是Spring3,但是我没有使用其对REST的支持,也没有使用注解。
所需要的其他Jar包包括:
1 antlr-2.7.5H3
2 antlr.jar
3 bsh-1.3.0.jsr
4 cglib-nodep-2.1_3.jar
5 com.springsource.org.antlr-3.0.0.M2.jar
6 asm-2.2.2.jar
7 asm-commons-2.2.2.jar
需要用这些包替换项目中已经有的其他antlr,cglib,asm包,否则就会报相应的错误。
FCKEditor是2.6版。
我的文件结构如下:
RestOnSpring
-src
-org.jport.samples.web.mvc
-RichEditorController.java
-WebRoot
|-fckeditor
+editor
|-fckconfig.js
|-fckeditor.js
|-fckpackager.xml
|-fckstyles.xml
|-fcktemplates.xml
|-WEB-INF
|-jsp
|-richeditor
|-create.jsp
|-display.jsp
|-applicationContext.xml
|-richeditor-servlet.xml
|-web.xml
在上篇文章里,我设计好了如下的URI:
显示新增页面 richeditor/create
保存 richeditor/save。对于是新增还是修改,需要借助Form中的一个隐藏域,<input type='hidden' id='id' value='<%=id%>'/>,将id置于表述之中而不是URI中,传给Web服务器,这样做是因为表述包含了我要传递的数 据,将相当于RPC(远程过程调用)中的数据对象,然后借用Hibernate中saveOrUpdate的思想,如果该id==null则意味着新增, 否则意味着修改。
显示阅读页面 richeditor/diplay?id=123
显示修改页面 richeditor/edit?id=123
RichEditorController.java如下
package org.jport.samples.web.mvc; import java.lang.annotation.Annotation; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; /** * The central richeditor * {@link org.springframework.web.servlet.mvc.Controller} implementation for the * application. * * @author sslaowan */ public class RichEditorController extends MultiActionController{ public ModelAndView create(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView(); } public ModelAndView edit(HttpServletRequest request, HttpServletResponse response) throws Exception { String id = (String) request.getParameter("id"); //通过调用业务服务,根据id返回要修改的内容 String text=(String) request.getParameter("value"); ModelAndView mv = new ModelAndView("forward:/richeditor/create.htm"); mv.addObject("id", id); mv.addObject("value", text); return mv; } public ModelAndView display(HttpServletRequest request, HttpServletResponse response) throws Exception { String id=(String) request.getParameter("id"); //通过调用业务服务,根据id返回要修改的内容 String text=id; request.setAttribute("value", text); return new ModelAndView(); } public ModelAndView save(HttpServletRequest request, HttpServletResponse response) throws Exception { String text = request.getParameter("FCKeditor1"); String id=request.getParameter("id"); if("".equals(id)){ System.out.println("save:"+text); }else{ System.out.println("update:"+text); } ModelAndView mv = new ModelAndView("forward:/richeditor/display.htm?id="+text); mv.addObject("value", text); return mv; } }
richeditor-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- maps request URLs to Controller names --> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" /> <!-- Controller names are not important when using the above HandlerMapping implementation--> <bean class="org.jport.samples.web.mvc.RichEditorController" /> <!-- this bean with the well known name generates view names for us --> <!-- not strictly required since we just want to accept the defaults--> <bean id="viewNameTranslator" class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
create.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%String value=(String)request.getAttribute("value")==null?"":(String)request.getAttribute("value"); %>
<%String id=(String)request.getAttribute("id")==null?"":(String)request.getAttribute("id"); %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>FCKeditor - Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="../fckeditor/fckeditor.js"></script>
</head>
<body>
<form action="/RestOnSpring/richeditor/save.htm" method="post">
<input type="hidden" name='id' value='<%=id%>'/>
<script type="text/javascript">
<!--
var sBasePath = '/RestOnSpring/fckeditor/' ;
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 300 ;
oFCKeditor.Value = '<%=value%>' ;
oFCKeditor.Create() ;
//-->
</script>
<br />
</form>
</body>
</html>
display.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%String value=(String)request.getAttribute("value")==null?"":(String)request.getAttribute("value"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <div> <form action="/RestOnSpring/richeditor/edit.htm?id=<%=value%>" method="post"> <input type="submit" value="编辑" /> </form> </div> <hr /> <%=value%> </body> </html>
为了单纯的测试Web层,我通过在页面间传递文本内容(通过mv.addObject("value",text);这句话与request.setAttribute("value",text);等价)来模拟保存的数据,用String text=id或者是打印语句的方式来模拟业务。
发表评论
-
Hibernate3.6 缓存
2011-12-12 12:06 1882一级缓存 一级缓存和get,load,save ... -
扩展Spring测试框架
2011-11-28 17:56 1199可以利用 @RunWith(Spri ... -
Hibernate inverse
2011-11-17 16:52 673在关联关系中,inverse="false" ... -
解决java.lang.IllegalStateException: getOutputStream() has already been called for
2011-09-28 13:39 32247http://www.blogjava.net/pengpen ... -
Hibernate配置联合主键(内部类实现主键)
2011-09-26 16:13 2098public class A{ privat ... -
Hibernate3.2和Hibernate3.6创建元数据的不同
2011-09-26 14:39 845在Hibernate3.2中,只要cfg.addXML将hbm ... -
[原创]面向服务的框架 Service-Oriented Framework
2011-01-03 15:18 963面向服务的框架 Service-Orient ... -
REST:讨论如何避免URL Template与实际数据的冲突
2010-06-23 19:08 1014看下面几个测试: ... -
Java 编程技术中汉字问题的分析及解决
2009-10-24 14:18 7502000 年 11 月 01 日 在基于 Java 语言 ... -
JSP/Servlet 中的汉字编码问题
2009-10-24 14:01 8412001 年 3 月 01 日 网上就 JSP/S ... -
Servlet 2.3:新特征
2009-10-24 13:54 943题注:目前servlet和jsp ... -
UTF-8 字符处理在 Web 开发中的应用
2009-10-24 13:43 896http://www.ibm.com/developerwor ... -
基础入门-JAVA字符集详解
2009-10-24 13:06 1320建议 1、数据库编码为GB2312 2、web容器编码为U ... -
Spring3.0新特征-Restful support MVC
2009-06-04 21:26 3304Spring 2.5发布不久,Spring3.0项目已经是 ... -
对Grails之误解
2009-05-26 14:39 806转自InfoQ:http://www.infoq.com/cn ... -
关于RCP与Web交互的一些设计思路
2009-05-25 12:06 1436使用的Web框架是Spring MVC,并利用其C ... -
我看好Flex
2009-05-20 11:41 8611 99%以上的客户端都安装了Flash runtime,解决 ... -
对比REST之前和REST之后的URI映射
2009-05-19 12:33 19612008年9月23日,JSR3111.0草案通过了J ... -
用ASM为类动态增加属性
2009-05-08 20:26 3452通过程序修改 .class 文件! 下面这个是用 ASM 工具 ... -
基于REST+CoC构建Java Web快速开发框架的架构思路
2009-05-08 20:21 2434在《Web开发敏捷之道》这本书的前面几章里,Dav ...
相关推荐
初学者绝佳入门实例,展现web开发最主流框架:struts+hibernate+spring,使用前沿技术freemarker实现模板重用,使用FckEditor提供和word媲美的在线文本编辑功能。
FCKeditor_2.6.6.zip+fckeditor-java-2.4.1.rar+fckeditor-java-2.4.1-bin.zip+fckeditor-java-2.4-src.zip+fckeditor-java-demo-2.4.war.zip 分享几个包,让你学习有成。加油
extjs + fckeditor 的结合源码 这个demo讲的是extjs + fckeditor 的结合 这个demo网上有 但是是java版的 今天我把它转换成asp.net版 测试环境vs2008+xp+extjs2.2+fckeditor 2.x 大家运行Default.aspx就可以看到...
FCKeditor_2.6.3+FCKeditor-2.3.rar
FCKeditor_2.6.6 + FCKeditor.Net_2.6.4 ,ASP.NET下用的文本编辑器。
由官网FCKeditor_2.6.4+fckeditor-java-2.4.1修改。 修改内容有: 1、上传的文件名为中文会变成乱码 2、新建中文目录变乱码(这个好似还有点小问题,不过不影响使用,还是不建议用中文目录) 3、对上传的文件使用...
本人agd第一次发demo比较粗糙...这个demo讲的是extjs + fckeditor 的结合 这个demo网上有 但是是java版的 今天我把它转换成asp.net版 测试环境vs2008+xp+extjs2.2+fckeditor 2.x 大家运行Default.aspx就可以看到效果了
包括fckeditor2.6.4+fckeditor-java-2.4.1配置所需资源包及fckeditor-java-2.4.1源码和配置说明文档。 配置中解决了中文乱码,并为上传文件自动创建日期文件夹。
Smarty+FCKeditor新闻系统实例
FCKeditor.java-2.3.2 + FCKeditor_2.5.1 + 中文API 黄金搭档! 最近做项目需要jsp里使用编辑器,在网上搜资料 几乎前篇一律, 版本太多,一晚上没睡 调试通了!有兴趣的可以研究下!
这是小弟自己写的一个实际项目,是一个关于信息发布的实例..有助于学习struts2+fckeditor的朋友学习..
[新闻文章]Smarty+FCKeditor新闻系统实例_smartynew.zip
FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合...
解决了在struts2下试用fckeditor上传图片出错
采用php+mysql、smarty模板引擎和FCKeditor编辑器设计,能满足个人日志的所有功能
ASP.NET MVC FCKEditor Demo ,富文本编辑控件FCKEditor和ASP.NET MVC 结合使用,代码简单易懂,适用于学习FCKEditor 结合asp.net mvc的初学者使用。
使用了struts+hibernate框架,并集成了fckeditor3.5.3 和 freemarker 保证能够实用,如果运行出现问题,请联系我 chenyanhu@vip.163.com
struts2中配置FCKeditor,实现强大的编辑功能