我希望开始开发一个使用Java编写的Web应用程序,但是我尝试过的大多数框架(如Apache Wicket、Liftweb)需要进行大量的设置、配置,并且在让整个项目与Eclipse协作时,还要理解Maven,以至于我花费了整个周末才试图达到第一行代码的编写点!
有没有人能够推荐一个简单的Java Web应用程序框架,不需要涉及Maven、极其复杂的目录结构或者无数必须手动编辑的XML文件?
我希望开始开发一个使用Java编写的Web应用程序,但是我尝试过的大多数框架(如Apache Wicket、Liftweb)需要进行大量的设置、配置,并且在让整个项目与Eclipse协作时,还要理解Maven,以至于我花费了整个周末才试图达到第一行代码的编写点!
有没有人能够推荐一个简单的Java Web应用程序框架,不需要涉及Maven、极其复杂的目录结构或者无数必须手动编辑的XML文件?
我并没有亲自尝试过,但我认为:
有很大的潜力...
作为一个从php和classic asp过渡来的人,这是第一个听起来对我很有前途的java web框架。
由问题原始提问者编辑 - 2011-06-09
只想提供一下更新。
我选择了Play,它正是我所要求的。它需要非常少的配置,并且开箱即用。它的不同之处在于,它弃用了一些常见的Java最佳实践,而是以保持简单为重点。
特别是,它大量使用静态方法,甚至对传递给方法的变量名称进行了一些内省操作,这是Java反射API不支持的。
Play的态度是,它的首要目标是成为一个有用的web框架,坚持常见的Java最佳实践和习惯次要。这种方法对我来说很有道理,但是Java纯粹主义者可能不喜欢它,他们最好使用Apache Wicket。
总之,如果你想在Java中构建一个Web应用程序,并且希望拥有类似于Ruby on Rails框架的便利和简洁性,并且还带有Java的工具(例如Eclipse)的好处,那么Play Framework是一个绝佳的选择。
(已更新至Spring 3.0版本)
我同样使用Spring MVC。
你需要从这里下载Spring。
在web.xml
中添加以下servlet以配置您的Web应用程序使用Spring。
<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的功能的冰山一角...
希望这能有所帮助。
我非常喜欢Stripes,它是一个与传统配置不同的框架,只需要在应用程序的web.xml中复制粘贴一些XML代码即可使用。通过Java 1.5注解来覆盖默认行为,且无需额外配置。文档十分详尽,我大约花了1-2个小时阅读教程并完成了我的第一个应用程序。
虽然我还没有在Stripes中创建完整的大型应用程序(就像我在Struts中做的那样),因此无法进行深度比较,但是看起来Stripes可以很好地扩展到这个级别的架构。
你正在寻找http://grails.org/
你可以使用Groovy来编写它,它是一种基于Java的动态语言,并且可以与Java代码、类和库平稳运行。Groovy的语法既不难学也不离Java太远。尝试一下吧,只需要几分钟就能建立一个网站。只需按照http://grails.org/Installation和http://grails.org/Quick+Start的步骤即可。
问候,GHad
看看WaveMaker,用它来快速构建简单的Web应用程序。 它具有基于浏览器的拖放式设计师,可用于Dojo / JavaScript小部件,后端完全由Java支持。
条纹(Stripes):非常不错。有一本关于它的书出版了,由实用程序员(pragmatic programmers)出版:http://www.pragprog.com/titles/fdstr/stripes。无需XML,需要Java 1.5或更高版本。
织带(Tapestry):我尝试过一个旧版本3.x。我被告知当前版本5.x处于Beta测试阶段,非常不错。
在处理Maven、没有XML和快速理解方面,条纹应该更好。
敬礼,
~A
我喜欢Spring MVC,使用2.5版本的功能时,几乎不需要涉及XML。