Question

Je veux envoyer des fichiers JavaScript dans un de mes colis et de les servir comme Struts /struts/js/foo.js

Struts fait que pour les fichiers dans le package « modèle » (d'où les fichiers de plug-ins jQuery sont situés, gardée par option struts.ui.templateDir). Cependant, je veux mettre ces fichiers dans un autre paquet; Si je Redéfinir struts.ui.templateDir travail cesse alors Struts parce qu'il ne peut pas trouver ses modèles.

La question est: Comment dire Struts pour servir des fichiers dans org.foo.some.package.js comme /struts/js/whatever.js

Était-ce utile?

La solution

Struts2 peut servir à de contenu statique de la boîte. Par contenu statique défaut est diffusée par DefaultStaticContentLoader une mise en œuvre de StaticContentLoader. Il recherche automatiquement les paquets suivants:

  • org.apache.struts2.static
  • template
  • statique
  • org.apache.struts2.interceptor.debugging

Vous pouvez ajouter des packages supplémentaires à rechercher dans le paramètre init filtre nommé « packages ».

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    <init-param>
        <param-name>packages</param-name>
        <param-value>some.package another.one</param-value>
    </init-param>
</filter>

Vous pouvez ajouter plus d'un paquet, virgule utilisation ou espace ou une tabulation ou une nouvelle ligne comme séparateur.

BTW vous pouvez contrôler si le contenu statique est mis en cache par un navigateur ou non avec cette constante:

struts.serve.static.browserCache

Autres conseils

Une façon est d'étendre l'ensemble du modèle et changer le TEMPLATEDIR comme vous avez déjà suggéré. À moins on a besoin de mettre en œuvre un modèle personnalisé, cela est très-kill sur.

Mais à mon humble avis la meilleure façon est d'oublier /struts/js/foo.js et utiliser toute autre URL pour charger les js.

Quelques exemples:

JSP

WebPages
    |-->myjs.js         (a normal js file)
    |-->mydynamicjs.jsp (a .jsp file containing ONLY javascript code)
    |-->WEB-INF-->xyz.js (another .js file but accessed only through action)

Struts

<action name="myacctionjs">
    <result>/WEB-INF/xyz.js</result>
</action>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top