2010-12-14 55 views
0

Je développe un projet avec Struts2. J'utilise jsp pour le web. J'utilise la base de données MySQL pour mon application et j'ai installé le serveur wamp pour cela. Mes URL sont comme localhost/xxx? Name.action? Blablabla ... au lieu de cela, je veux rediriger les urls. Par exemple, au lieu de name.action sur mon URL, je veux utiliser localhost/name ou quelque chose comme ça. Aussi avec .htaccess je veux envoyer des données dessus comme name.action? Id = $ 1 ... pour mon action du côté de Struts2. Cependant, je ne pouvais pas rediriger les URL, je ne pouvais pas définir correctement la racine du document et le fichier .htaccess. Que dois-je faire, pouvez-vous l'expliquer étape par étape?créer .htaccess

Merci.

Répondre

1

Votre configuration dépend du type de serveur Java EE que vous allez utiliser. Apache Tomcat a une très bonne intégration AJP avec le serveur web Apache, c'est ce que je vais utiliser dans cet exemple de configuration.

Vous écrivez que vous souhaitez effectuer le remappage d'URL dans Apache. Je déconseille fortement de le faire, car cela rendra très difficile la génération dynamique de votre URL dans votre application. Vous pouvez mieux utiliser les fonctionnalités de mappage d'URL de votre infrastructure Web afin de conserver la prise en charge générant des liens de ce framework.

Je ne suis pas familier avec Struts, mais s'il ne supporte pas cette fonctionnalité de base, je vous recommande de passer au Stripes framework ou au framework Spring MVC plus complexe. Vous écrivez plus loin que vous voulez utiliser JSP, donc je vous recommande également d'utiliser le MVC pattern tous ces outils de support. Cela signifie que vous mappez les URL aux objets action/controller et jamais directement aux fichiers JSP. Voici un exemple de configuration .htaccess qui passera toutes les URL entrantes qui se terminent par .action vers votre serveur Java EE. Les URL sont transmises exactement de la même manière que l'URL demandée, y compris leurs paramètres (facultatifs). Assurez-vous que le port est le port d'écoute AJP de votre serveur Java EE (ou bien remplacez-le par le port que vous avez configuré).

# Example .htaccess 
# 
# Please make sure 8009 is the port number of your Java EE server 
RewriteEngine On 
RewriteBase/

RewriteRule ^(.*\.action)$ ajp://127.0.0.1:8009/$1 [P,QSA,L] 

Vérifiez également que vous avez correctement configuré Apache. Par exemple, vous devez avoir configuré les bons modules, ce sont ceux que j'ai permis (bien que vous ne pourriez pas besoin tous):

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule rewrite_module modules/mod_rewrite.so 
+0

Où est la réponse? –

+0

Je les ai activés sur httpd.conf. Cependant à l'endroit où je vais mettre le fichier. Htaccess et comment je vais configurer le port à 8009? – kamaci

+0

Le fichier .htaccess que vous placez dans la racine de votre répertoire de site web Apache webservers (pas dans WEB-INF!). Le port 8009 est le numéro de port par défaut (sinon configurez-le dans conf/server.xml). Si ce n'est pas sur le même serveur, vous devrez peut-être également ouvrir ce port sur votre pare-feu. – Kdeveloper

0

Si vous utilisez une version actuelle de struts2, 2.2.1 vous devez configurer votre application selon: http://struts.apache.org/2.2.1/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html s'il vous plaît recherchez la page "web.xml Servlet Filter" une fois que cela est fait "name" et "name.action" sont deux mappages valides à l'action "name". En ce qui concerne les paramètres url, ceci est automatiquement pris en compte avec les balises. Les tutoriels de base et les exemples de références de tags sur le site web struts.apache.org. La racine du document est normalement configurée via IDE à partir du nom du projet, plus généralement lorsque l'EDI créera un WAR, lorsque vous déployez le WAR via une interface web pour votre serveur d'application/conteneur web en changeant la racine du document est normalement l'un des champs visibles pendant l'installation. C'est donc facilement configurable par installation.

+0

Quel IDE utilisez-vous? Si c'est Netbeans alors je peux donner des instructions explicites sinon je pourrais avoir le temps de mettre à jour ceci et fournir des instructions générales. – Quaternion

+0

J'utilise Intellij IDEA 9.0.3 – kamaci

+0

Je suppose que Intellij a le soutien de maven, utilisez-vous maven pour la construction? – Quaternion

0

Vous n'avez pas besoin d'utiliser l'extension .action dans Struts2. Vous pouvez opter pour une extension différente ou pas d'extension (ce qui semble être ce que vous voulez).

+0

Je souhaite également publier des données sur le fichier .htaccess. Par exemple RewriteRule^nom/quelque chose $ /name.action?type=nameOfType – kamaci

0

Steven dit droit

Il suffit d'utiliser le nom d'action lorsque vous appelez l'action des entretoises de jsp.

par exemple. href="actionName" au lieu de href="actionName.action" dans une étiquette d'ancrage.