1

Struts 2.3.15 を使用s:optionselecttransferしていますが、JavaScript が読み込まれないためタグが機能しません。私が使う:

<%@ taglib prefix="s" uri="/struts-tags" %>
<s:optiontransferselect ... />

次の JavaScript を生成します。

<script type="text/javascript" src="/struts/optiontransferselect.js"></script>

私の問題はconfigurationManager.reload()、さまざまなプラグインに保存されているいくつかの追加の Struts2 XML 構成ファイルを読み込んだ後に Struts メソッドを呼び出すために発生します。呼び出しreload()は、Struts による静的リソースの提供を停止します。私のリロードは次のように行われます:

ConfigurationManager configurationManager = dispatcher.getConfigurationManager();
StrutsXmlConfigurationProvider strutsXmlConfigurationProvider = 
        new StrutsXmlConfigurationProvider(strutsXMLLocation, false, getServletContext());
configurationManager.addContainerProvider(strutsXmlConfigurationProvider);
configurationManager.reload();

この問題を解決するために、ファイルをorg.apache.struts2.staticサーバー ルートにコピーしてアクセスできるようにし、Roman C のコードを使用して Struts が静的リソースを提供するのを防ぎました。これによりs:optionselecttransfer、ブラウザがタグの JavaScript を検出できるようになります。

a が静的リソースの提供を妨げる理由について誰かが推測できる場合はreload()、修正を試みたいと思います。他にアイデアがない場合は、Roman C のソリューションを受け入れます。

4

1 に答える 1

1

s:headタグは head タグの下に配置する必要があります。

FilterDispatcherデフォルトで使用される定数は、jar 内から静的コンテンツを提供します。

struts.serve.static=true

からアクセスする場合はcontext_path/struts、 に設定してオフにしますfalse

struts.serve.static=false
于 2013-08-23T15:44:38.157 に答える