65 Stimmen

Kann jemand ein einfaches Java-Webapp-Framework empfehlen?

Ich versuche, mit einer hoffentlich relativ schnellen Webanwendung in Java zu beginnen, doch die meisten Frameworks, die ich ausprobiert habe (Apache Wicket, Liftweb), erfordern so viel Einrichtung, Konfiguration und den Versuch, mich mit Maven zurechtzufinden, während ich das Ganze mit Eclipse zum Laufen bringe, dass ich das ganze Wochenende damit verbracht habe, nur den Punkt zu erreichen, an dem ich meine erste Codezeile schreibe!

Kann jemand ein einfaches Java-Webapp-Framework empfehlen, das ohne Maven, schrecklich komplizierte Verzeichnisstrukturen oder unzählige XML-Dateien, die manuell bearbeitet werden müssen, auskommt?

50voto

opensas Punkte 56212

Ich habe es selbst noch nicht ausprobiert, aber ich denke

http://www.playframework.org/

hat eine Menge Potenzial...

Von php und klassischem asp kommend, ist es das erste Java-Webframework, das für mich vielversprechend klingt....

Bearbeitung durch den ursprünglichen Fragesteller - 2011-06-09

Ich wollte nur ein Update geben.

Ich habe mich für Play entschieden, und es war genau das, was ich wollte. Es erfordert nur sehr wenig Konfiguration und funktioniert sofort nach dem Auspacken. Es ist ungewöhnlich, da es einige gängige Java-Best-Practices zugunsten einer möglichst einfachen Bedienung umgeht.

Insbesondere macht es regen Gebrauch von statischen Methoden und führt sogar eine Introspektion der Namen von an Methoden übergebenen Variablen durch, was von der Java-Reflection-API nicht unterstützt wird.

Play hat sich zum Ziel gesetzt, ein nützliches Web-Framework zu sein, und die Einhaltung gängiger Java-Best-Practices und Idiome ist dabei zweitrangig. Dieser Ansatz macht für mich Sinn, aber Java-Puristen mögen ihn vielleicht nicht und wären besser dran mit Apache Wicket .

Zusammenfassend lässt sich sagen, dass das Play Framework eine gute Wahl ist, wenn Sie eine Web-App erstellen möchten, die mit einem Framework wie Ruby on Rails vergleichbar ist, aber in Java und mit den Vorteilen der Java-Werkzeuge (z. B. Eclipse).

7 Stimmen

Play framework hard to learn and brakes the JEE. Es versucht, sein eigenes Ökosystem zu schaffen, bleiben Sie weg von ihm.

0 Stimmen

Versuchen Sie, den Code des Play 2.0-Frameworks zu debuggen. Wenn Sie Scala nicht kennen, werden Sie es damit schwer haben.

48voto

toolkit Punkte 48653

(Aktualisiert für Spring 3.0)

Ich gehe mit Spring MVC auch.

Sie müssen Spring herunterladen von aquí

Um Ihre Web-Anwendung für die Verwendung von Spring zu konfigurieren, fügen Sie das folgende Servlet zu Ihrer 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>

Anschließend müssen Sie Ihre Spring-Konfigurationsdatei erstellen /WEB-INF/spring-dispatcher-servlet.xml

Ihre erste Version dieser Datei kann so einfach sein wie:

<?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 erkennt dann automatisch Klassen, die mit @Controller

Ein einfacher Controller ist dann:

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";
   }
}

Und die 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>

Dies ist nur die Spitze des Eisbergs in Bezug auf das, was Spring tun kann...

Ich hoffe, das hilft.

27 Stimmen

Spring ist sicherlich ein gutes und weit verbreitetes Framework, aber es wurde nach einem einfaches Java-Webapp-Framework . ;-)

0 Stimmen

Wo sollte details.jsp stehen? Ich habe das wie beschrieben eingerichtet und erhalte: 2012-09-24 21:57:31.236:WARN:oejs.ServletHandler:/details.jsp java.lang.NullPointerException at java.net.URLEncoder.encode(URLEncoder.java:205) ...

5 Stimmen

Das ist genau das Problem, das der ursprüngliche Poster vermeiden wollte. Die Notwendigkeit, Unmengen von diesem XML hier, jenem XML dort, jede Menge Standardcode zu schreiben, macht einfache Aufgaben komplex und komplexe Aufgaben unmöglich. Sollte es nicht andersherum sein?

28voto

John Stauffer Punkte 15508

Ich bin wirklich einkerbend Streifen . Die gesamte Einrichtung umfasst das Ausschneiden und Einfügen von XML in die web.xml Ihrer Anwendung, und dann kann es losgehen. Es ist keine Konfiguration erforderlich, da Stripes ein Rahmenwerk ist, das auf Konventionen und nicht auf Konfiguration basiert. Das Überschreiben des Standardverhaltens wird über Java 1.5-Annotationen erreicht. Die Dokumentation ist großartig. Ich habe etwa 1-2 Stunden damit verbracht, das Tutorial zu lesen und meine erste Anwendung einzurichten.

Ich kann noch keinen detaillierten Vergleich mit Struts oder Spring-MVC anstellen, da ich noch kein vollständiges Projekt damit entwickelt habe (wie bei Struts), aber es sieht so aus, als ob es auf diese Ebene der Architektur ganz gut skalieren würde.

1 Stimmen

20voto

GHad Punkte 9561

Sie sind auf der Suche nach http://grails.org/

Sie programmieren es mit Groovy, einer dynamischen Sprache, die auf Java basiert und problemlos mit Java-Code, -Klassen und -Bibliotheken zusammenarbeitet. Die Syntax ist weder schwer zu erlernen noch weit von Java entfernt. Probieren Sie es aus, es dauert nur wenige Minuten, um eine Website zum Laufen zu bringen. Folgen Sie einfach http://grails.org/Installation y http://grails.org/Quick+Start

Grüß Gott, GHad

0 Stimmen

Danke, aber ich will wirklich ein Java-Framework, oder Scala an einer Strecke. Ich brauche etwas mit einer minimalen Lernkurve, und eine ganz neue Sprache zu lernen, unabhängig davon, wie einfach sie sein mag, ist nicht das, was ich im Sinn hatte.

1 Stimmen

Groovy ist wirklich so ähnlich wie Java, dass Sie schreiben können, was effektiv Java-Syntax und dann, wie Sie wachsen mehr Vertrauen machen es mehr Groovy. Grails ist wirklich ein großartiges Framework für das schnelle Prototyping von Websites.

0 Stimmen

FWIW, können Sie Groovy-Code in Java zu schreiben - es wird es einfach gut zu kompilieren.

8voto

killdash10 Punkte 698

Sehen Sie sich WaveMaker an, um eine schnelle, einfache Webapp zu erstellen. Sie haben einen browserbasierten Drag-and-Drop-Designer für Dojo/JavaScript-Widgets, und das Backend ist 100% Java.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X