-1

Velocity を使用して HTML ページを表示する Java EE アプリケーションがあります。私の問題は、Java メソッド ConfigurationF3Controller() の実行が終了した後にページをリダイレクトするか、ページを更新することです。メソッドの終了後に同じページをリロードするには、veloCity オブジェクトにどのパラメーターを渡す必要がありますか?

以下のコードは、速度テンプレートのスニペットです。

<link rel="stylesheet" type="text/css" href="color.css">
<link rel="stylesheet" type="text/css" href="layout.css">

<div id="conteneur" class="import-woalis">
    <div class="info-title">
        <span class="portefeuille"><u> Fichier de configuration F3</u></span>
    </div>

    <div id="content">
        <div class="descriptif-contrat">
            <table cellspacing="10" border="0">
                <tr>
                    <td colspan="2">
                        <span class="libelle" style="width: 130px">Configuartion File<br />file type F3</span>
                        <form action="fichier-configuration-f3.html?action=importerFichierConfiguration" method="post" enctype="multipart/form-data" name="importerFichierConfForm">
                            <input type="file" name="file" size="50" id="check" />
                        </form>     
                    </td>
                </tr>
                <tr>
                    <td>
                        <span class="libelle" style="color: red;"><u>Attention :</u><br>file mist be of UNIX type</span>
                    </td>
                    <td valign="top">
                        <div class="button-box"><input type="button" class="button button-import" onclick="document.importerFichierConfForm.submit();"></div>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <span class="libelle">actual file contents : </span>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <textarea  cols="90%" rows="25" readonly="true" style="resize: none" >$fileControllerF3</textarea>
                    </td>
                </tr>
            </table>
        </div>
    </div>
</div>

2 番目のコード スニペットは、開始ページを読み込み、UNIX サーバー上のファイルの内容を入力します。

public class ConfigurationF3Controller extends MainController {

    public ModelAndView begin(final HttpServletRequest pRequest, final HttpServletResponse pResponse) throws Exception {
        final Context vContext = getContext(pRequest, pResponse);

        if (null == vContext) {
            return null;
        }

        final VelocityContext vVelocityContext = new VelocityContext();

        final String vNomdePage = "administration/fichier-configuration-f3.vm";

        // file fileF3 will contain the path and the file name on the server  Constantes.PARAM_IMPORT_FICHIER_F3
        final String vRepertoireF3 = ParamDelegator.getParameter(Constantes.PARAM_IMPORT_FICHIER_F3);
        final File fileF3 = new File(vRepertoireF3 + Constantes.NAME_FILE_CONFIG_F3);

        // call for a method which uses Buffered reader to read the file on the server        
        String fileControllerF3 = getFileConfigurationF3(fileF3);

        // call for velocity to put the contents of the read file in the html field called fileControllerF3(see first part of the code)
        vVelocityContext.put("fileControllerF3", fileControllerF3);

        affichePage(vNomdePage, vContext, pRequest, pResponse, vVelocityContext, Constantes.EC_ADM_FICHIER_CONFIG_F3);

        return null;
    }

    //Another Method to display nothing on the page!
    public ModelAndView affichePagePrincp(final HttpServletRequest pReq, final HttpServletResponse pResponse)
            throws Exception {

        final Context vContext = getContext(pReq, pResponse);

        if (null == vContext) {
            return null;
        }

        final VelocityContext vVelocityContext = new VelocityContext();
        final String vNomdePage = "administration/fichier-configuration-f3.vm";
        final String stringBlank = "";

        vVelocityContext.put("fileControllerF3", stringBlank);

        affichePage(vNomdePage, vContext, pReq, pResponse, vVelocityContext, Constantes.EC_ADM_FICHIER_CONFIG_F3);

        return null;
    }
}
4

1 に答える 1

1

Java メソッドの終了後にページを更新する必要はありません。

サーブレットで http GET リクエストを実行すると、通常、http レスポンスにページ コンテンツが含まれていると予想されます。

したがって、速度テンプレートをレンダリングして、応答に添付する必要があります。

于 2013-07-08T11:16:23.280 に答える