- 浏览: 380375 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1923一级缓存 一级缓存和get,load,save ... -
扩展Spring测试框架
2011-11-28 17:56 1224可以利用 @RunWith(Spri ... -
Hibernate inverse
2011-11-17 16:52 700在关联关系中,inverse="false" ... -
解决java.lang.IllegalStateException: getOutputStream() has already been called for
2011-09-28 13:39 32280http://www.blogjava.net/pengpen ... -
Hibernate配置联合主键(内部类实现主键)
2011-09-26 16:13 2134public class A{ privat ... -
Hibernate3.2和Hibernate3.6创建元数据的不同
2011-09-26 14:39 875在Hibernate3.2中,只要cfg.addXML将hbm ... -
[原创]面向服务的框架 Service-Oriented Framework
2011-01-03 15:18 996面向服务的框架 Service-Orient ... -
REST:讨论如何避免URL Template与实际数据的冲突
2010-06-23 19:08 1064看下面几个测试: ... -
Java 编程技术中汉字问题的分析及解决
2009-10-24 14:18 7872000 年 11 月 01 日 在基于 Java 语言 ... -
JSP/Servlet 中的汉字编码问题
2009-10-24 14:01 8742001 年 3 月 01 日 网上就 JSP/S ... -
Servlet 2.3:新特征
2009-10-24 13:54 983题注:目前servlet和jsp ... -
UTF-8 字符处理在 Web 开发中的应用
2009-10-24 13:43 935http://www.ibm.com/developerwor ... -
基础入门-JAVA字符集详解
2009-10-24 13:06 1364建议 1、数据库编码为GB2312 2、web容器编码为U ... -
Spring3.0新特征-Restful support MVC
2009-06-04 21:26 3360Spring 2.5发布不久,Spring3.0项目已经是 ... -
对Grails之误解
2009-05-26 14:39 846转自InfoQ:http://www.infoq.com/cn ... -
关于RCP与Web交互的一些设计思路
2009-05-25 12:06 1471使用的Web框架是Spring MVC,并利用其C ... -
我看好Flex
2009-05-20 11:41 8851 99%以上的客户端都安装了Flash runtime,解决 ... -
对比REST之前和REST之后的URI映射
2009-05-19 12:33 19872008年9月23日,JSR3111.0草案通过了J ... -
用ASM为类动态增加属性
2009-05-08 20:26 3500通过程序修改 .class 文件! 下面这个是用 ASM 工具 ... -
基于REST+CoC构建Java Web快速开发框架的架构思路
2009-05-08 20:21 2515在《Web开发敏捷之道》这本书的前面几章里,Dav ...
相关推荐
总结来说,这个在线博客系统是一个集成了多种主流技术的实战项目,适合初学者了解和学习Web开发的全貌,尤其是Java领域的MVC架构、ORM、AOP等概念。通过这个项目,开发者可以深入理解这些技术如何协同工作,从而提升...
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.4+fckeditor-java-2.4.1修改。 修改内容有: 1、上传的文件名为中文会变成乱码 2、新建中文目录变乱码(这个好似还有点小问题,不过不影响使用,还是不建议用中文目录) 3、对上传的文件使用...
FCKeditor是一款经典的开源富文本编辑器,广泛应用于网站建设和内容管理系统中,为用户提供类似Microsoft Word的界面,方便用户在网页上编辑文本内容。FCKeditor_2.6.3+FCKeditor-2.3.rar这个压缩包包含了FCKeditor...
本人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源码和配置说明文档。 配置中解决了中文乱码,并为上传文件自动创建日期文件夹。
FCKeditor.java-2.3.2 + FCKeditor_2.5.1 + 中文API 黄金搭档! 最近做项目需要jsp里使用编辑器,在网上搜资料 几乎前篇一律, 版本太多,一晚上没睡 调试通了!有兴趣的可以研究下!
总之,这个"struts2+fckeditor关于信息发布的实例"提供了一个学习如何将Struts2的MVC架构与FCKeditor的富文本编辑功能相结合的好机会。通过实践这个实例,开发者可以更好地理解两者在Web应用中的实际应用,以及如何...
Struts2+FCKeditor-2.3 是一个集成解决方案,旨在为Java开发人员提供一个强大的文本编辑器,以便在Web应用程序中实现富文本输入。FCKeditor是一款开源的JavaScript组件,它允许用户在Web页面中编辑HTML内容,类似于...
"freemarker+fckeditor+struts+hibernate" 这个标题揭示了一个基于Java的Web开发项目,它整合了四个关键的技术组件:FreeMarker模板引擎,FCKeditor富文本编辑器,Struts MVC框架,以及Hibernate持久化框架。...
在这个实例中,Smarty负责处理视图层,提供清晰的MVC(模型-视图-控制器)架构,而FCKeditor则作为用户友好的内容编辑工具,允许管理员方便地创建、编辑和格式化新闻内容。 Smarty是一个流行的PHP模板引擎,它的...
Struts2是一个非常流行的Java Web框架,用于构建MVC(模型-视图-控制器)架构的应用程序。FCKeditor则是一款强大的在线文本编辑器,它允许用户在网页上进行富文本编辑,包括插入图片、链接等操作。在Struts2框架中...
Smarty 和 FCKeditor 是两个在 Web 开发中常用的工具,它们在构建新闻系统时发挥着重要作用。Smarty 是一个流行的PHP模板引擎,而FCKeditor则是一个功能强大的在线文本编辑器。接下来,我们将深入探讨这两个技术及其...
FCKeditor是一款经典的开源富文本编辑器,广泛应用于Web开发中,为用户提供类似于Microsoft Word的界面,以便在网页上编辑内容。FCKeditor_2.6.6是该编辑器的一个版本,它提供了丰富的功能,如字体样式设置、图片...
FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合...
FCKeditor是一款强大的开源网页文本编辑器,专为Web开发者设计,用于在网站上提供类似桌面文字处理软件的用户体验。这个资源包含两个版本——FCKeditor.Net_2.6.3.zip和FCKeditor_v2.6.8,都是FCKeditor的.NET实现,...
**标题解析:**"jsp+Fckeditor实现在线编辑器"表明这个项目是利用JavaServer Pages (JSP) 技术和FCKeditor来构建一个在线文本编辑器。JSP是一种动态网页开发技术,常用于服务器端编程,而FCKeditor则是一个开源的、...