`
allbin1983
  • 浏览: 35999 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

忘记ssh组合的原因,一个新的ssh开发组合,使用ssh的发言

阅读更多

在你看本帖之前,建议先看  http://www.iteye.com/problems/63098   这样会更容易理解我的心情。

 


很多网友给了很多建议,为了不浪费大家的时间,友情提示,该贴要表达的意思是开发ssh框架的另一个组合。

 

今天分享下使用simple开发的一个新增例子,本人很害羞,希望一起学习simple的给予掌声鼓励一下,让我有勇气可以献丑。

好了,说下要完成的需求吧!

新增需要完整的功能包括:

1) 需要完成对指定字段的校验。

2) 需要完成对时间选择弹出功能的实现

3) 最重要的当然是要把数据保存到数据中了。

 

下面是我在开发中的核心文件,他就可以完成上述的效果,具体代码如下:

 

<components>

        <!-- 客户端页面数据校验组件  -->   
        <validation name="YddValidation" triggerSelector="#_YddBtn"
            warnType="insertAfter">
            <validator selector="#clmc" method="required" />
        </validation>

 

       <!-- 日历组件的使用, 可以参考 developer\comps\calendar\demo.jsp ,showTime 用来显示是否显示具体时间 -->
        <calendar name="csdata" inputField="csdataCalendarText"
            dateFormat="yyyy-MM-dd HH:mm">
        </calendar>
        <calendar name="jcdata" inputField="jcdataCalendarText2"
            dateFormat="yyyy-MM-dd HH:mm" showTime="true">
        </calendar>
       
 
        
        <!-- 保存ajax -->  
        <ajaxRequest name="demo_save"
            handleClass="demo.DcfwHandle"
            handleMethod="doSave" formSelector="#ajaxdcfw_ydd_Params">
            <jsCompleteCallback>
                if (json["ok"])
                alert("保存成功!");
            </jsCompleteCallback>
        </ajaxRequest>

    </components>

 

 

运行一下看看效果:

1. 这是基本的jsp表单,纯html,使用simple开发,写一个对应文件名的xml进行声明,就可以完成下面的功能。

2) 这是在声明中要对该字段进行验证。 simple对验证的策略做的真细啊.

3) 这是使用simple的日历组件,只需要声明下,就可以完成弹出日期选择框,真的很惊讶!


4) 日历组件还有更多的配置项,细心的应该发现这个两个日历框有何不同吗,留给你观察吧。

5)这是点击保存,提示成功

6) 当然数据入库了,给大家看下,后续会做展示。

 

总结:

        通过使用simple开发新增功能,我觉得特别方便,需要做的工作就是声明组件,描述组件与jsp页面的绑定。

在做的过程也遇到很多问题,比如,开始并不会使用验证组件,只是在演示demo上看到过有这个功能,我就在svn

上下载了代码,并在本地部署了一套,操作过程中,不知道simple需要连接数据库,在启动的时候总是报错,在论坛上得到simple的团队的支持,才把环境跑起来。

然后,就看到每个组件使用都有例子,参考了官方对组件的介绍,就把遇到的问题化解了。

 

      单纯的使用ajax网上教程很多,而简单的配置一下,就可以完成校验与日历选择的功能,由于我一直使用ssh,类似的功能我也写一堆js校验,还的网站找日历插件( ssh 我只能说 goodbye )。

 

     对于后台代码,也是按照网上的例子,不需要写bean,直接在ajax中进行jsp与后台数据库字段的映射,就完成的操作了。

 

分享到:
评论
30 楼 liuwuhen 2014-07-08  
  <ajaxRequest name="demo_save"
            handleClass="demo.DcfwHandle"
            handleMethod="doSave" formSelector="#ajaxdcfw_ydd_Params">
            <jsCompleteCallback>
                if (json["ok"])
                alert("保存成功!");
            </jsCompleteCallback>
        </ajaxRequest>

不太规范
29 楼 royboy 2011-04-12  
有很有敏捷的开发框架,能帮你省更多事,数据库的工作都能帮你作了。如ROR
28 楼 allbin1983 2011-04-11  
myter7 写道
myter7 写道
从这个我觉得, je的隐藏贴什么的机制真的要改革了。


对比下, 那个“这样的公司还要呆下去吗?”,我没觉得, 这个帖子要比那个贴更值得隐藏。

个人愚见, 可能是大家对标题党的作法, 已经到了忍无可忍的地步了- -




如果这个帖子被隐藏了,只能说明一个问题,是我发帖没有水平,每次都被推到首页,每次都被隐藏-  

我的真实想法是想让大家多了解一个开发选择,减轻面临的开发问题,可惜。。 这次也难逃隐藏的命运!
27 楼 allbin1983 2011-04-11  
<div class="quote_title">kjj 写道</div>
<div class="quote_div">
<pre name="code" class="java">  return jsonForward(new JsonCallback() { 
        @Override 
        public void doAction(Map&lt;String, Object&gt; json) throws Exception { 
            json.put("ok", true); 
        } 
    });  </pre>
<br><br><br><br>每次返回视图都要回调一下?????????<br>这种语法.................<br>纠结...........还不如直接返回一个字符串标识的好..........</div>
<p><br><br><span style="font-size: xx-large;"><br><span style="color: red;">这只是提供的一个测试,simple有很多方式</span></span></p>
<p> </p>
26 楼 allbin1983 2011-04-11  
yangguo 写道
去官网看了一下,感觉不错,有点像tapestry.
但楼主拿ssh来对比就太低级了,这分明是一种基于组件的开发技术,比ssh高效多了。



  没有与ssh相比,只是让大家知道可以更高效的开发,基于组件快速完成工作!
25 楼 myter7 2011-04-11  
myter7 写道
从这个我觉得, je的隐藏贴什么的机制真的要改革了。


对比下, 那个“这样的公司还要呆下去吗?”,我没觉得, 这个帖子要比那个贴更值得隐藏。

个人愚见, 可能是大家对标题党的作法, 已经到了忍无可忍的地步了- -
24 楼 myter7 2011-04-11  
从这个我觉得, je的隐藏贴什么的机制真的要改革了。
23 楼 kjj 2011-04-11  

  return jsonForward(new JsonCallback() {  
        @Override  
        public void doAction(Map<String, Object> json) throws Exception {  
            json.put("ok", true);  
        }  
    });  




每次返回视图都要回调一下?????????
这种语法.................
纠结...........还不如直接返回一个字符串标识的好..........
22 楼 yangguo 2011-04-11  
去官网看了一下,感觉不错,有点像tapestry.
但楼主拿ssh来对比就太低级了,这分明是一种基于组件的开发技术,比ssh高效多了。
21 楼 allbin1983 2011-04-11  
361010911 写道
蛋痛 ! -- 后台code呢?



// 新增
	public IForward doSave(final ComponentParameter compParameter) throws Exception {
		
	        	ITableEntityManager entityManager = DataObjectManagerFactory.getTableEntityManager(dataSource,table);  // 获得数据源
	
		Map<String, Comparable> insertData = new HashMap<String, Comparable>();
		insertData.put("id",(Comparable)ID.Utils.newID(entityManager.nextIncValue("id"))); // 设置主键
		// 映射数据库字段与页面 jsp 的对应
		insertData.put("clmc", compParameter.getRequestParameter("clmc"));
		entityManager.insert(insertData); 
		
		return jsonForward(new JsonCallback() {
			@Override
			public void doAction(Map<String, Object> json) throws Exception {
				json.put("ok", true);
			}
		});
	}


这就是后台代码!
20 楼 361010911 2011-04-11  
蛋痛 ! -- 后台code呢?
19 楼 allbin1983 2011-04-11  
vincent_com 写道
lz好样的,只要学到东西就是进步。。。不必在乎别人说什么的。。。放出代码又怎样。。。菜鸟又能怎样呢?



做了这么多年的java开发,其实标题写的有点大,应该是ssh的重新组合,不管怎么样,坚持自己的理念,以开放的心态与大家分享开发的心得。

看到很多点击隐藏帖,真的很打击人,打击的原因是不明白,就直接拍砖。

多谢你的支持,你的一番话让我更加坚定把好的东西与大家分享。
18 楼 allbin1983 2011-04-11  
<div class="quote_title">llade 写道</div>
<div class="quote_div">曾经也想用XML定义一个伟大的框架,在这个框架下写XML就可以了。后来发觉语法太复杂的硬伤,作罢。后来发觉一个貌似将会很伟大的基于XML的内容发布框架COCOON,开始还觉得不是很复杂。再后来,发觉这个框架要记忆的东西太多了,N多的XML标签和属性,不查API根本记不住。<br><br>COC这东西最好要贯彻一下,凡是好的框架必然遵循COC的原则,或者核心部分遵循COC。假如要让一个程序员接收一样东西,最好不要让他丢掉以前的COC知识。<br><br><div class="quote_title">引用</div>
<div class="quote_div">
<br>        &lt;validation name="YddValidation" triggerSelector="#_YddBtn"<br>             warnType="insertAfter"&gt;<br>             &lt;validator selector="#clmc" method="required" /&gt;<br>         &lt;/validation&gt;<br>
</div>
<br><br>validation 如果不是被别的代码所引用或者操控,name属性是没有必要的,增加开发者的思考停顿。<br><br>triggerSelector那么长的属性名,还不如onselect比较遵循COC。<br><br>warnType="insertAfter"看不懂,<br><br>&lt;validator selector="#clmc" method="required" /&gt;看不懂,<br><br><div class="quote_title">引用</div>
<div class="quote_div">
<br>        &lt;calendar name="jcdata" inputField="jcdataCalendarText2"<br>             dateFormat="yyyy-MM-dd HH:mm" showTime="true"&gt;<br>         &lt;/calendar&gt;<br><br>
</div>
<br><br>inputField="jcdataCalendarText2"干啥用?如果用name="jcdata"可以引用到,要这个根本没用。<br>showTime="true"干啥用?如果仅仅是页面展现的时候把日历选择框popup出来,还不如show="true"简单,甚至popup="true"更让人容易理解。<br><div class="quote_title">引用</div>
<div class="quote_div">
<br>        &lt;!-- 保存ajax --&gt;  <br>         &lt;ajaxRequest name="demo_save"<br>             handleClass="demo.DcfwHandle"<br>             handleMethod="doSave" formSelector="#ajaxdcfw_ydd_Params"&gt;<br>             &lt;jsCompleteCallback&gt;<br>                 if (json["ok"])<br>                 alert("保存成功!");<br>             &lt;/jsCompleteCallback&gt;<br>         &lt;/ajaxRequest&gt;<br><br>
</div>
<br><br>ajaxRequest最好简化为ajax<br>name属性貌似多余。<br>handleClass="demo.DcfwHandle" handleMethod="doSave"要是我来设计肯定会是 handle="demo.DcfwHandle.doSave()"<br><br>formSelector="#ajaxdcfw_ydd_Params"智商太低,猜不透。。。。<br><br>jsCompleteCallback改为onsuccess会好点,另外,最好设计onsuccess和onfailure标签,这样不用出现:if (json["ok"]),OK?<br><br><br>
</div>
<p><br><br><strong><br><span style="color: blue;">感谢你对本帖的关注,我转发了水牛同学写的这个例子,没想到大家这么关注。 <br><br>关于你对这个文件的疑问,我没办法三言两语回答,你可以看下simple对ajax 的官方介绍。</span></strong><br><br><a href="http://simpleframework.net/blog/v/18624.html" target="_blank">http://simpleframework.net/blog/v/18624.html</a><br><strong><br><span style="color: #ff0000;">我觉得看完后,对你的问题会有明确的回答。</span></strong></p>
<p> </p>
<p>Simple 对每一个组件的方法都采用xsd描述文件解决开发过程中帮助提示。</p>
<p> </p>
17 楼 vincent_com 2011-04-11  
lz好样的,只要学到东西就是进步。。。不必在乎别人说什么的。。。放出代码又怎样。。。菜鸟又能怎样呢?
16 楼 llade 2011-04-11  
曾经也想用XML定义一个伟大的框架,在这个框架下写XML就可以了。后来发觉语法太复杂的硬伤,作罢。后来发觉一个貌似将会很伟大的基于XML的内容发布框架COCOON,开始还觉得不是很复杂。再后来,发觉这个框架要记忆的东西太多了,N多的XML标签和属性,不查API根本记不住。

COC这东西最好要贯彻一下,凡是好的框架必然遵循COC的原则,或者核心部分遵循COC。假如要让一个程序员接收一样东西,最好不要让他丢掉以前的COC知识。

引用

        <validation name="YddValidation" triggerSelector="#_YddBtn"
             warnType="insertAfter">
             <validator selector="#clmc" method="required" />
         </validation>


validation 如果不是被别的代码所引用或者操控,name属性是没有必要的,增加开发者的思考停顿。

triggerSelector那么长的属性名,还不如onselect比较遵循COC。

warnType="insertAfter"看不懂,

<validator selector="#clmc" method="required" />看不懂,

引用

        <calendar name="jcdata" inputField="jcdataCalendarText2"
             dateFormat="yyyy-MM-dd HH:mm" showTime="true">
         </calendar>



inputField="jcdataCalendarText2"干啥用?如果用name="jcdata"可以引用到,要这个根本没用。
showTime="true"干啥用?如果仅仅是页面展现的时候把日历选择框popup出来,还不如show="true"简单,甚至popup="true"更让人容易理解。
引用

        <!-- 保存ajax --> 
         <ajaxRequest name="demo_save"
             handleClass="demo.DcfwHandle"
             handleMethod="doSave" formSelector="#ajaxdcfw_ydd_Params">
             <jsCompleteCallback>
                 if (json["ok"])
                 alert("保存成功!");
             </jsCompleteCallback>
         </ajaxRequest>



ajaxRequest最好简化为ajax
name属性貌似多余。
handleClass="demo.DcfwHandle" handleMethod="doSave"要是我来设计肯定会是 handle="demo.DcfwHandle.doSave()"

formSelector="#ajaxdcfw_ydd_Params"智商太低,猜不透。。。。

jsCompleteCallback改为onsuccess会好点,另外,最好设计onsuccess和onfailure标签,这样不用出现:if (json["ok"]),OK?


15 楼 allbin1983 2011-04-11  
iday 写道
标题党。。。



本人表示很冤枉,告诉你,我不是标题党,我发的有内容为证,这是我写的例子,有必要做标题党吗?

写很少的代码,完成分配的工作,难道不是进步吗?
14 楼 allbin1983 2011-04-11  
leelege 写道
说实话,目前为止我还没有找到任何放弃spring的理由,你这个……我就不评价了



相信自己的观点,深入了解后才能客观的评价。


我弱弱的问一句,你实现上面的功能,需要自己写多少代码?
13 楼 allbin1983 2011-04-11  
kjj 写道
我觉得颠覆性的东西应该带来思想上的创新而不是表面形式的改变,这样看simple充其量只可能是改良的ajax或者jsf之流的东西,根本不能让人忘记ssh,发这样的文章证明simpl只能说明simple还太弱,
ps :技术人员最讨厌假大空的,他们需要的是实实在在的改变,一切噱头在他们实事求是的态度面前都没用



simple并没有抄袭那个框架,包括后处理模式绝对是原创,并且把这种开发模式进行提炼。
simple 当然仅仅是改良的ajax,我们提供丰富的组件,包括网站都说自己的技术开发的,我也不是噱头,只是愿意与大家分享我开发的喜悦与成就感。

以前开发类似的功能,我要写一堆代码,而现在就是上面展示的 加后台几十行代码,就可以搞定,难道这不是创新吗?
12 楼 allbin1983 2011-04-11  
hubeen 写道
对于后台代码,也是按照网上的例子,不需要写bean,直接在ajax中进行jsp与后台数据库字段的映射,就完成的操作了。

什么概念?视图控制业务逻辑。业务逻辑就这么简单,直接插入数据库?只能说是悲剧的设计。。。




我没有说清楚,simple 支持 ajax提交的数据,在handle处理后可以直接入口,要表达的只是后台开发非常轻松,上面我说过,开发这个功能,代码不超过50行。
11 楼 allbin1983 2011-04-11  
caoyangx 写道
就你那几个图片,也算是忘记ssh原因?我上学的毕业设计都比那图片的UI漂亮。simple自己也用spring等大量jar,还敢说忘记ssh。



感谢这位兄弟的评价,你要知道,你完成上述这些功能,需要写多少代码,而我完成上面的功能,后台只要几十行代码,当然,平台使用了spirng的IOC, 我要说的意思,是忘记ssh开发的模式,太浪费时间与精力了,如果你对simple 深入了解后,我相信你会有不同的看法。

相关推荐

    ssh开发实例 ssh开发实例

    ssh开发实例ssh开发实例ssh开发实例 ssh开发实例chm版本

    ssh三大框架组合完整版本

    这个"ssh三大框架组合完整版本"是一个针对初学者的学习资源包,它整合了这三个框架,提供了一个完整的开发环境。 Struts2是MVC(Model-View-Controller)架构模式的实现,用于控制应用程序的流程。它的核心是Action...

    最新SSH的jar包

    在Java Web开发中,SSH组合被广泛使用,因为它们能够有效地协同工作,提供一套完整的解决方案。这些jar包包含了SSH框架的各个组件,如Spring的核心模块、AOP模块、Web模块,Struts的主框架、标签库以及Hibernate的...

    商城系统ssh组合框架

    综上所述,"商城系统ssh组合框架"是利用Struts2、Spring和Hibernate的优势,构建出一个高效、灵活的电子商务平台。通过SSH框架,开发者可以专注于业务逻辑的实现,而将基础设施的复杂性交给框架处理,从而提高开发...

    全注解ssh开发

    在IT行业中,SSH(Struts2 + Spring + Hibernate)是一个非常常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用。这个“全注解SSH开发”主题着重于使用注解来简化SSH框架的配置,提高开发效率。以下是...

    一个简单的SSH框架程序

    通过学习和实践这个“一个简单的SSH框架程序”,开发者可以掌握SSH框架的整合方法,了解各组件间如何协同工作,从而提升自己的Java Web开发技能。同时,这也是一个很好的起点,为进阶到更复杂的Java企业级应用打下...

    ssh框架开发包

    SSH框架,全称为Spring、Struts、Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),Struts的MVC设计...

    ssh开发所需基本jar包

    在Java Web开发中,SSH(Struts、Spring、Hibernate)是一个经典的开源框架组合,用于构建高效、可维护的Web应用程序。SSH框架集成了MVC(Model-View-Controller)架构模式,依赖注入(DI)与面向切面编程(AOP),...

    SSH开发包下载

    在实际开发中,通常会将SSH整合到一个项目中,通过配置文件(如struts.xml、hibernate.cfg.xml、spring-context.xml等)来定义各个组件的交互。开发者需要熟练掌握XML配置或注解方式,以及相应的API和工具,如Maven...

    用IDEA创建一个SSH项目.doc

    在本文中,我们将详细介绍如何使用 IDEA 创建一个 SSH 项目,包括项目的创建、配置和启动过程。 创建 Maven Web 项目 首先,我们需要在 IDEA 中创建一个新的 Maven 项目。在 IDEA 中,单击 "File" -&gt; "New" -&gt; ...

    Python-WebSSH一个基于Web的ssh客户端

    Python-WebSSH是一个开源项目,它提供了一个基于Web的界面,用户可以通过浏览器直接访问并管理远程SSH服务器,无需安装任何桌面SSH客户端。这个工具对于需要在不同设备上远程操作服务器的开发者或者系统管理员来说...

    SSH框架JAR包集合

    SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。这些框架各自负责不同的职责,Spring作为基础架构框架,Struts处理视图与控制,Hibernate则专注于...

    搭建SSH开发环境(三大框架)

    在IT行业中,SSH(Struts2、Spring、Hibernate)是一个常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。以下将详细介绍如何搭建SSH开发环境。 首先,确保你有以下开发工具和库: 1. **...

    web开发-SSH通讯录

    SSH通讯录是一个基于SSH技术的地址簿应用,它展示了如何将SSH与Web开发相结合。在描述中提到,这是一个适合初学者的资源,意味着它可能包含了基础的SSH配置、连接和命令执行等教学内容。 **Spring**、**Struts**和*...

    基于Rust的SSH2客户端库设计源码

    这是一个基于Rust语言开发的SSH2客户端库,包含35个文件,其中主要文件类型包括19个Rust源文件、4个YAML文件、3个TOML文件、1个gitignore文件、1个gitmodules文件、1个Apache License文件、1个MIT License文件、1个...

    Node.js-WebSSH2基于Web的SSH2客户端使用xterm.jssocket.io和ssh2实现

    在本项目中,"Node.js-WebSSH2基于Web的SSH2客户端使用xterm.js、socket.io和ssh2实现",我们关注的是构建一个在浏览器环境中运行的SSH2客户端。这个客户端允许用户通过Web界面安全地连接到远程服务器执行命令,从而...

    简单ssh框架(适合开发及初学者了解ssh框架)

    SSH框架,全称为Struts2、Hibernate和Spring的集成,是Java Web开发中常见的三大开源框架的组合。这个框架集合提供了模型-视图-控制器(MVC)模式、对象关系映射(ORM)以及依赖注入(DI)和面向切面编程(AOP)的...

    Eclipse搭建SSH框架开发学习笔记

    Eclipse是一个强大的开源Java IDE,适用于多种语言的开发,包括Java、Python、C++等。它拥有丰富的插件体系,使得开发者能够方便地集成各种工具,如版本控制系统、数据库管理工具、单元测试框架等。在SSH框架开发中...

    Node.js-ssh2-一个SSH2客户端和服务器node.js模块

    在 IT 领域,Node.js 是一个非常流行的 JavaScript 运行环境,它允许开发者使用 JavaScript 进行后端开发。在 Node.js 的生态系统中,`ssh2` 是一个强大的库,它提供了一个SSH2协议的客户端和服务器实现。这个模块...

    ssh详细开发流程

    从开始到介绍开发步骤 逐步来建立 适合初学者使用 非常清晰的ssh开发流程

Global site tag (gtag.js) - Google Analytics