# Geeignete Java-Technologie



## pymote (4. Apr 2006)

Hallo zusammen,

Ich lerne mich gerade in diverse Java-Technologien ein, besitze allerdings noch nicht den Überblick um entscheiden zu können, welche Technologie die geeignetste für mein folgendes Vorhaben ist:
Meine Anwendung soll zentral auf einem Applikationsserver arbeiten. die steuerung soll über den browser auf einem beliebigen Arbeitsplatz-PC möglich sein. Mehrere Benutzer müssen gleichzeitig damit arbeiten können. Gesteuert werden Prozesse, deren ergebnisse ich aber gerne wieder im Browser anzeigen möchte.

Welche Möglichkeiten gibts es hierfür? 
Welche erscheinen euch am einfachsten, welche bieten aber auch das Potenzial für Verbesserungen/Erweiterungen?

Danke!


----------



## clemson (4. Apr 2006)

ich würde dir Struts empfehlen... in zusammenarbeit mit tiles, taglibs, ...


----------



## KSG9|sebastian (4. Apr 2006)

Einfach ist keine der möglichen Techniken. Im Endeffekt hast du aber komplett alle Techniken der J2EE-Welt zur Verfügung 

struts
struts-tiles
struts-shale
jsf
myfaces
velocity
portlets
.
.
.


----------



## pymote (4. Apr 2006)

ja, mit Struts wollte ich mich auch mal beschäftigen. Was mir bei allen Technologien fehlt ist ein Tutorial, dass auch wirklich funktioniert. Ich arbeite hier mit Eclipse und Tomcat und hab auch versucht mit der WebTools Edition was auf die Beine zu stellen (Webservice). Ich bleibe aber ständig irgendwo hängen. 
Kann mir jemand Tutorials zu Struts o.ä. nennen, die auch funktionieren?

gruss


----------



## clemson (4. Apr 2006)

hmm, tutorials gibt es viele zu struts (einfach mal googlen).

beispiel


----------



## Gast (4. Apr 2006)

JavaServer Faces ist moderner als Struts, wenn du sowieso ein neues Projekt starten willst, dann würde ich eher zu JSF raten, wobei struts natürlich nicht schlecht ist.


----------



## byte (5. Apr 2006)

In der iX hat gerade ein 3-teiliges JSF Tutorial begonnen.


----------



## pymote (6. Apr 2006)

ok, danke erstmal:

ich hab jetzt mal clemsons struts tutorial gemacht und bin zumindest nen schritt weiter (d.h. keine Exceptions mehr). Allerdings funktioniert des angegebene Beispiel nicht richtig: Nach drücken des submit-buttons (Step 8: Testing your application) dass die submit action (submit.do) die eigene submit.jsp wieder aufruft und alle angegeben Eingaben in der Form stehen. Das ist aber nicht der Fall, es wird keine submit.jsp aufgerufen sondern eine leere seite angezeigt. Die Adressleiste zeigt weiterhin nur die submit action an (http://localhost:8080/myproject/submit.do). 

hattet ihr die gleichen probleme?


----------



## clemson (6. Apr 2006)

pymote hat gesagt.:
			
		

> ...es wird keine submit.jsp aufgerufen sondern eine leere seite angezeigt



wie lautet denn der quelltext dieser leeren seite? ist dieser nämlich "" und nicht "<html><head></head<body></body></html>" usw. dann denk ich, hängt das damit zusammen, dass ein actionforward zurückgegeben wird, welcher für dieses mapping nicht existiert...

oder du postest mal ein bisschen quellcode...  :wink:


----------



## pymote (7. Apr 2006)

hi,
es wird wirklich eine leere seite ausgegeben (""). der gedanke mit dem actionforward ist mir auch gekommen, allerdings frag ich wie das sein kann; ich hab alle quelltexte und die xmls wie im original beibehalten.
merkwürdig ist dass mein eclipse bei den import-statements der klasse "SubmitForm" meckert, dass "javax.servlet.http.HttpServletRequest" gar nie verwendet wird.
ach ja, vielleicht ist das auch von belang: ich benutze eclipse (web tools edition) mit dem sysdeo tomcat plugin.

gruß


----------



## clemson (7. Apr 2006)

zeig mal bitte ein bisschen code, dann kann ich mir mal ein bisschen überblick verschaffen...


----------



## pymote (7. Apr 2006)

die web.xml:


```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

  
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
	  org.apache.struts.action.ActionServlet
	</servlet-class>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

 
  
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 
  
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>

</web-app>
```

die struts-config.xml:


```
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
 "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">

<struts-config>

  
  <form-beans>

    <form-bean      name="submitForm"
                    type="hansen.playground.SubmitForm"/>

  </form-beans>

  
  <action-mappings>

    <action   path="/submit"
              type="hansen.playground.SubmitAction"
              name="submitForm"
              input="/submit.jsp"
              scope="request">
    <forward name="success" path="/submit.jsp"/>          
    <forward name="failure" path="/submit.jsp"/>          
    </action>

  </action-mappings>

</struts-config>
```

SubmitForm:



```
package hansen.playground;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;

public final class SubmitForm extends ActionForm {

  /* Last Name */
  private String lastName = "Hansen"; // default value
  public String getLastName() {
    return (this.lastName);
  }
  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  /* Address */
  private String address = null;
  public String getAddress() {
    return (this.address);
  }
  public void setAddress(String address) {
    this.address = address;
  }

  /* Sex */
  private String sex = null;
  public String getSex() {
    return (this.sex);
  }
  public void setSex(String sex) {
    this.sex = sex;
  }

  /* Married status */
  private String married = null;
  public String getMarried() {
    return (this.married);
  }
  public void setMarried(String married) {
    this.married = married;
  }

  /* Age */
  private String age = null;
  public String getAge() {
    return (this.age);
  }
  public void setAge(String age) {
    this.age = age;
  }

}
```

SubmitAction:


```
package hansen.playground;

import javax.servlet.http.*;
import org.apache.struts.action.*;

public final class SubmitAction extends Action {

  public ActionForward perform(ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    SubmitForm f = (SubmitForm) form; // get the form bean
    // and take the last name value
    String lastName = f.getLastName(); 
    // Translate the name to upper case 
    //and save it in the request object 
    request.setAttribute("lastName", lastName.toUpperCase());
    
    // Forward control to the specified success target
    return (mapping.findForward("success"));
  }
}
```


----------



## pymote (7. Apr 2006)

ich hab nur die vorlagen aus dem tutorial benutzt.
ich benutze struts 1.2.9
und den tomcat 5.5.15


----------



## KSG9|sebastian (7. Apr 2006)

wurde die Methode umbenannt ? Normalerweise war es doch immer Action#execute, oder ?


----------



## KSG9|sebastian (7. Apr 2006)

Wo _genau_ liegt die submit.jsp ? WEB-INF oder im "root" ?


----------



## pymote (7. Apr 2006)

Action#execute ist mir nicht bekannt, meinst du dieses tutorial?

die "submit.jsp" liegt im root verzeichnis


----------



## clemson (7. Apr 2006)

hmm, ich glaub ich weiß jetzt wo der fehler liegt. in früheren versionen von struts hieß die methode perform...

diese ist aber depreacated, und ab nun soll die methode Action#execute verwenden...



			
				ApiDoc zu version 1.1 hat gesagt.:
			
		

> Action#perform
> Deprecated. Use the execute() method instead






			
				pymote hat gesagt.:
			
		

> ich hab nur die vorlagen aus dem tutorial benutzt.
> ich benutze struts 1.2.9
> und den tomcat 5.5.15



da liegt der hund begraben... du verwendest zwar das neue struts - aber die im tutorial machen das ganze noch  mit einer älteren version davon. mit der änderung perform() --> execute dürfte es laufen


----------



## pymote (10. Apr 2006)

;-)

Danke! Danke! Danke!


----------

