Struts avec Eclipse , faire fonctionner tout ca :) - Java - Programmation
Marsh Posté le 14-04-2004 à 11:20:32
Juste une remarque : si tu donnes "struts-html" comme prefix a la taglib html tu dois l'utiliser sous la forme <struts-html:form ...> non
Marsh Posté le 14-04-2004 à 11:23:47
org.apache.jasper.JasperException: /index.jsp(6,0) Attribute local invalid according to the specified TLD
on avance
Marsh Posté le 14-04-2004 à 11:29:14
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
Marsh Posté le 14-04-2004 à 11:43:25
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<!--
This is a blank Struts configuration file with an example
welcome action/page and other commented sample elements.
Tiles and the Struts Validator are configured using the factory defaults
and are ready-to-use.
NOTE: If you have a generator tool to create the corresponding Java classes
for you, you could include the details in the "form-bean" declarations.
Otherwise, you would only define the "form-bean" element itself, with the
corresponding "name" and "type" attributes, as shown here.
-->
<struts-config>
<!-- ==================================== Data Source Configuration -->
<!--
<data-sources>
<data-source>
<set-property
property="autoCommit"
value="false"/>
<set-property
property="description"
value="Example Data Source Configuration"/>
<set-property
property="driverClass"
value="org.postgresql.Driver"/>
<set-property
property="maxCount"
value="4"/>
<set-property
property="minCount"
value="2"/>
<set-property
property="password"
value="mypassword"/>
<set-property
property="url"
value="jdbc:postgresql://localhost/mydatabase"/>
<set-property
property="user"
value="myusername"/>
</data-source>
</data-sources>
-->
<!-- ======================================== Form Bean Definitions -->
<form-beans>
<!-- sample form bean descriptor for an ActionForm
<form-bean
name="inputForm"
type="app.InputForm"/>
end sample -->
<!-- sample form bean descriptor for a DynaActionForm
<form-bean
name="logonForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
end sample -->
</form-beans>
<!-- ================================= Global Exception Definitions -->
<global-exceptions>
<!-- sample exception handler
<exception
key="expired.password"
type="app.ExpiredPasswordException"
path="/changePassword.jsp"/>
end sample -->
</global-exceptions>
<!-- =================================== Global Forward Definitions -->
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="welcome"
path="/Welcome.do"/>
</global-forwards>
<!-- =================================== Action Mapping Definitions -->
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/Welcome.jsp"/>
<!-- sample input and input submit actions
<action
path="/Input"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/Input.jsp"/>
<action
path="/InputSubmit"
type="app.InputAction"
name="inputForm"
scope="request"
validate="true"
input="/pages/Input.jsp"/>
end samples -->
</action-mappings>
<!-- ===================================== Controller Configuration -->
<controller
processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<!-- ================================ Message Resources Definitions -->
<message-resources parameter="resources.application"/>
<!-- ======================================= Plug Ins Configuration -->
<!-- ========== Tiles plugin =================== -->
<!-- -->
<!--
This plugin initialize Tiles definition factory. This later can takes some
parameters explained here after. The plugin first read parameters from web.xml, then
overload them with parameters defined here. All parameters are optional.
The plugin should be declared in each struts-config file.
- definitions-config: (optional)
Specify configuration file names. There can be several comma
separated file names (default: ?? )
- moduleAware: (optional - struts1.1)
Specify if the Tiles definition factory is module aware. If true (default),
there will be one factory for each Struts module.
If false, there will be one common factory for all module. In this later case,
it is still needed to declare one plugin per module. The factory will be
initialized with parameters found in the first initialized plugin (generally the
one associated with the default module).
true : One factory per module. (default)
false : one single shared factory for all modules
- definitions-parser-validate: (optional)
Specify if xml parser should validate the Tiles configuration file.
true : validate. DTD should be specified in file header. (default)
false : no validation
Paths found in Tiles definitions are relative to the main context.
-->
<!-- comment following if struts1.0.x -->
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
<!-- end comment if struts1.0.x -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
Marsh Posté le 14-04-2004 à 11:43:49
c'est la copie de ce qui se trouve dans le package struts que j'ai telechargé
Marsh Posté le 14-04-2004 à 11:50:52
Si tu veux utiliser struts pour gerer tes formulaires, tu dois creer l'actionForm correspondant (du moins c'est comme ca que je fais) et reseigner le fichier struts-config.xml pour lui expliquer quoi faire en fonction des actions du formulaire (actionMapping) ... j'ai pas l'impression d'etre tres clair
Marsh Posté le 14-04-2004 à 11:51:56
oulala .. moi qui pensais que ca allé me faciliter le boulot par rapport à jsp simple :s
Marsh Posté le 14-04-2004 à 11:55:32
Franchement non
Je me suis mis au j2ee pour un projet d'extranet pour un gros client.
Au final l'application a pris entre 3 et 4 fois plus de temps de developpement qu'avec un language "simple" (jsp ou php).
J'imagine que sur de tres gros projet ca doit valoir le coup ...
Marsh Posté le 14-04-2004 à 11:59:33
merde j'suis dans le mm cas que toi .. un jsp extranet :-/
j'arrete les frais alors?
Marsh Posté le 14-04-2004 à 12:50:52
struts n'est pas J2EE.
utiliser un framework (struts) qu'on ne connait pas induit forcément un temps de formation et d'adapation. Y a rien de surprenant à ca.
Marsh Posté le 14-04-2004 à 13:32:53
benou a écrit : struts n'est pas J2EE. |
Je sais parfaitement que j2ee ne se resume pas a struts, j'expliquais juste dans quelle conditions je m'y etais mis.
Maintenant je trouve que, meme apres 2 experiences avec, struts est lourd a utiliser sur des petites applications nottament web.
Marsh Posté le 14-04-2004 à 14:23:08
Heu ... je comprend pas ta dernière remarque : "nottament web". Struts ne s'utilise que pour faire du web.
Ensuite, évidemment que c'est lourd pour faire des petites applications. C'est pas fait pour faire des trucs rapides mais des trucs solides, et uniformes.
Enfin, stuts n'a rien à voir avec J2EE ... C'est pas que "j2ee ne se resume pas a struts", c'est qu'il n'en fait pas du tout partie ! Le seul lien c'est qu'il s'appuie sur les servlets & jsp qui eux, font partie de J2EE.
Pour finir, quand on se lance dans un développement, il faut choisir les bons outils. Utiliser struts pour faire un petit site vite fait, c'est une abération. L'utiliser pour fonder un intranet/extranet, qui va évoluer, sur lequel de nombreuses personnes sont amenées à travailler au fil des ans, qui a besoin d'avoir une architecture structurelle claire, c'est nettement plus adapté.
voila, voila ...
Marsh Posté le 14-04-2004 à 14:34:42
Comme le dit benou, Struts est pas fait pour arriver la bouche en coeur et hop, un ptit site joli tout plein.
C'est TRES lourdeau mais ca a le merite de permettre une 'automatisation' des procédures d'ajout de page ou d'objets par exemple.
[mode_benou's life on]
C'est quoi cette signature de fiotte ?
Tu refileras l'adresse du site avec tes photos du mariage a Plon
Et puis je t'interdis de pecho (enfin essayer) au mien
[mode_benou's life off]
Marsh Posté le 14-04-2004 à 14:40:40
benou a écrit : Heu ... je comprend pas ta dernière remarque : "nottament web". Struts ne s'utilise que pour faire du web. |
Ma reponse n'etait pas tres clair.
Je ne savais pas que struts ne servait que dans le cadre d'appli web, je ne me suis d'ailleurs jamais pose la question
Pour ta derniere remarque je suis entierement d'accord avec toi ...
Marsh Posté le 14-04-2004 à 14:42:22
chapi456 a écrit : Comme le dit benou, Struts est pas fait pour arriver la bouche en coeur et hop, un ptit site joli tout plein. |
qu'est ce que tu fous là, toi
-C'est la benou family que des smiley qui font la gueule
-ouais, je t'envoies ca ...
-Tu as quelque chose à annoncer ? et ca dépendera de la gueule des serveuses
Marsh Posté le 14-04-2004 à 15:35:35
t'as pas trouvé un smiley tout maigre qui fait la gueule ?
Marsh Posté le 14-04-2004 à 16:42:38
chapi456 a écrit : t'as pas trouvé un smiley tout maigre qui fait la gueule ? |
Marsh Posté le 14-04-2004 à 10:37:28
bj,
je cherche à faire du struts dans mon projet.
je suis sous Eclipse et mes jsp fonctionnent bien.
j'ai donc ajouté Struts.jar dans mon /WEB-INF/lib et dans mon tomcat
copié les *.tld dans mon /WEB-INF/
j'ai modifié mes web.xml et struts-config.xml
enfin j'ai créé un fichier
test.jsp comme ca :
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="struts-bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="struts-html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="struts-logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="struts-template" %>
<html:html local="true">
<head>
<title>
</title>
</head>
<body>
<html:form action ='/logon' focus='username'>
Username : <html:text property='username'/><br/>
Password : <html:password property='password'/>
<html:submit property='submit' value='submit'/>
</html:form>
</body>
</html:html>
mais le resultat ne correspond pas à un formulaire
je n'arrive à voir que :
Username :
Password :
qu'est ce que j'ai loupé?
merci d'avance.