谁能推荐一个简单的Java Web应用程序框架?
我正在尝试着用Java开发一个相对较快的Web应用程序,但是我尝试过的大多数框架(Apache Wicket,Liftweb)都需要大量的设置,配置和尝试,在使整个过程与Eclipse融为一体的同时,全神贯注于Maven,以至于整个周末我都只是试图写出第一行代码!
谁能推荐一个简单的Java Webapp框架,它不涉及Maven,可怕的复杂目录结构或者必须手动编辑的无数XML文件?
解决方案
我喜欢编写普通的旧servlets + winstone servlet容器。从那里开始,我需要模板(速度,XSLT等)和数据库访问(休眠,扭矩等)库,因为我需要它们,而不是使用实际的框架。
我们正在搜寻http://grails.org/
我们可以使用groovy(一种基于Java的动态语言)对其进行编码,并与Java代码,类和库一起平稳运行。语法既不难学习,也离Java不远。试试看,这是几分钟的时间,它可以启动并运行一个网站。只需遵循http://grails.org/Installation和http://grails.org/Quick+Start
加的特Greetz
AppFuse并没有使用它,它旨在促进Java Web Development附带的令人讨厌的设置。
我们尝试过DWR吗? http://directwebremoting.org
Grails是为Groovy而不是Java编写的。 AppFuse仅减少启动任何数量的Webapp框架所需的设置时间,而不是推广其中任何一个。
我建议使用Spring MVC。遵循精心编写的教程之后,我们将拥有一个简单易用的模型,该模型可以自动连接(无需XML配置!)到我们喜欢的任何视图技术中。
想要将"删除"操作添加到客户列表中吗?只需在客户控制器中添加一个名为" delete"的方法,该方法将自动连接到URL / customers / delete。
是否需要将请求参数绑定到对象上?只需将目标对象的实例添加到方法中,Spring MVC将使用反射来绑定参数,从而使编写逻辑就像客户端通过一个强类型对象开始一样容易。
厌倦了所有强制的MVC分工吗?只需让方法返回void,然后将响应直接写到Servlet的Writer(如果我们需要的话)即可。
我喜欢Spring MVC,使用2.5功能很少涉及XML。
查看WaveMaker,以构建一个快速,简单的Web应用程序。他们有一个基于浏览器的拖放设计器,用于Dojo / JavaScript小部件,后端是100%Java。
Stripes框架是一个出色的框架。涉及的唯一配置是在web.xml中粘贴几行。
这是一个非常直接的基于请求的Java Web框架。
我真的很喜欢条纹。整个安装过程将一些剪切和粘贴的XML包含到应用程序的web.xml中,然后我们就可以退出了。不需要配置,因为Stripes是约定之上的配置框架。覆盖默认行为是通过Java 1.5注释完成的。文档很棒。我花了大约1-2个小时阅读教程并设置了我的第一个应用程序。
我还无法与Struts或者Spring-MVC进行深入比较,因为我尚未在其中建立完整的比例(就像我在Struts中一样),但是看起来它可以扩展到该水平。建筑相当不错。
条纹:很好。一本实用的程序员写的一本书:http://www.pragprog.com/titles/fdstr/stripes。没有XML。需要Java 1.5或者更高版本。
Tapestry:尝试了旧版本3.x。有人告诉我,当前的5.x版本是Beta版,相当不错。
从照顾Maven,不使用xml以及快速整理头脑的角度来看,条纹应该更好。
BR
〜A
(已针对Spring 3.0更新)
我也使用Spring MVC。
我们需要从这里下载Spring
要配置Web应用程序以使用Spring,请将以下servlet添加到web.xml
中
<web-app> <servlet> <servlet-name>spring-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>spring-dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
然后,我们需要创建Spring配置文件/ WEB-INF / spring-dispatcher-servlet.xml
该文件的第一个版本可以很简单:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.acme.foo" /> <mvc:annotation-driven /> </beans>
然后,Spring将自动检测带有@Controller注释的类。
然后,一个简单的控制器是:
package com.acme.foo; import java.util.logging.Logger; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/person") public class PersonController { Logger logger = Logger.getAnonymousLogger(); @RequestMapping(method = RequestMethod.GET) public String setupForm(ModelMap model) { model.addAttribute("person", new Person()); return "details.jsp"; } @RequestMapping(method = RequestMethod.POST) public String processForm(@ModelAttribute("person") Person person) { logger.info(person.getId()); logger.info(person.getName()); logger.info(person.getSurname()); return "success.jsp"; } }
还有details.jsp
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <form:form commandName="person"> <table> <tr> <td>Id:</td> <td><form:input path="id" /></td> </tr> <tr> <td>Name:</td> <td><form:input path="name" /></td> </tr> <tr> <td>Surname:</td> <td><form:input path="surname" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Save Changes" /></td> </tr> </table> </form:form>
这只是关于Spring可以做的事情的冰山一角...
希望这可以帮助。
使用Maven原型可以非常快速地设置Tapestry 5. 请参阅Tapestry 5教程:
http://tapestry.apache.org/tapestry5/tutorial1/
我真的不知道让maven + eclipse起作用有什么大不了的事,只要我们不必对pom.xml进行太多更改即可:)
用户maven的大多数框架都具有可以生成存根项目的maven原型。
因此,基本上,这些步骤应该是:
- 安装Maven
- 将M2_REPO类路径变量添加到eclipse
- 生成具有原型的项目
- 导入项目到日食
至于Wicket,没有理由没有maven就无法使用它。关于maven的好处是它可以处理所有依赖关系,因此我们不必这样做。另一方面,如果我们唯一想做的是对几页原型进行原型制作,那么Wicket可能会显得过大。但是,如果应用程序最终增长,Wicket的优势将随着添加的每个表单,链接或者页面而不断显示:)
IMO的正确答案取决于两件事:
1.我们要编写的Web应用程序的目的是什么?
我们只是告诉我们我们想快速编写它,而不是我们实际上想做什么。例如。需要数据库吗?它是某种商业应用程序(提示:也许搜索"脚手架")? ..或者游戏? ..或者我们只是在尝试sthg?
2.我们现在最熟悉哪些框架?
通常需要花费大量时间的时间是阅读文档并弄清楚事物的工作方式(真正地)。如果我们希望快速完成,请坚持熟悉的事情。
在对Struts,Tapestry 3/4,JSF,JBoss Seam和GWT进行了许多痛苦的体验之后,我现在将继续使用Wicket。 Wicket Bench for Eclipse很方便,但并非100%完整,尽管仍然有用。用于部署到Tomcat的MyEclipse插件是ace。没有Maven只需部署一次,更改就会自动复制到Tomcat。魔法。
我的建议是:Wicket 1.4,MyEclipse,Subclipse,Wicket Bench和Tomcat6. 设置将花费一个小时左右的时间,但其中大多数将下载tomcat和Eclipse插件。
提示:不要使用Wicket Bench库,将Wicket 1.4库手动安装到项目中。
这个网站花了我大约2个小时来写http://ratearear.co.uk不要下班!!而这一工作大约需要三天时间http://tnwdb.com
祝你好运。提姆
Apache Wicket, Liftweb) require so much set-up, configuration
我不同意,我将Wicket用于我的所有项目,并且从未回头!
设置不需要花很多时间,甚至不需要一个小时就可以建立一个完整的环境来使用Wicket。
我自己还没有尝试过,但我认为
http://www.playframework.org/
有很大的潜力...
来自php和classic asp,它是第一个对我来说很有前途的Java Web框架。
由原始问题提问者编辑2011-06-09
只是想提供一个更新。
我选择了Play,这正是我所要求的。它只需要很少的配置,并且开箱即用。这是不寻常的,因为它避开了一些常见的Java最佳实践,以使事情保持尽可能简单。
特别是,它大量使用了静态方法,甚至对传递给方法的变量名进行了自省,这是Java反射API不支持的。
Play的态度是,其首要目标是成为一个有用的Web框架,而遵循常见的Java最佳实践和习惯用法是其次要目标。这种方法对我来说很有意义,但是Java纯粹主义者可能不喜欢它,并且使用Apache Wicket会更好。
总而言之,如果我们想构建一个与Ruby on Rails之类的框架可比的便捷性和简单性的Web应用程序,但是要使用Java并利用Java工具(例如Eclipse)的好处,那么Play Framework是一个不错的选择。
Oracle ADF http://www.oracle.com/technology/products/jdev/index.html
web4j工具以简单易行的方式推销自己。关于它的一些要点:
- 使用单个xml文件(所有servlet都需要的web.xml文件)
- 不依赖于Maven(或者任何其他第3方工具/ jar)
- 全栈,开源(BSD)
- 任何全栈Java框架中最少的类数
- 将SQL放在纯文本文件中
- 鼓励使用不可变的对象
- 所需的最少工具集(JSP / JSTL,Java,SQL)
如果我们想轻松地执行CRUD并创建一个快速的原型应用程序,并且与Eclipse配合很好,那么Grails是可行的方法。按照http://grails.org/Tutorials上的"构建第一个Grails应用程序"教程进行操作,我们可以在不到一个小时的时间内启动并运行自己的应用程序。
尝试Apache Click
就像Wicket一样,但效率更高且易于学习。
尝试Wavemaker http://wavemaker.com免费,易于使用。用WaveMaker构建美观的Java应用程序的学习过程仅需几周时间!
最近,我发现了AribaWeb框架,它看起来非常有前途。它提供了良好的功能(甚至AJAX)和良好的文档。用Groovy / Java编写,甚至包括Tomcat服务器。尝试进入Spring确实使我发疯。
我们可以尝试一下JRapid。使用域驱动设计,我们可以定义应用程序,并为Web应用程序生成完整的堆栈。它使用已知的开源框架,并生成一个非常漂亮且易于使用的UI。