1

JSPページを備えたGrailsアプリケーションがあります(レガシーJSPアプリケーションを移植しています)。何らかの理由で、ページが完全に空白になります。HTTPヘッダーを見ると、コンテンツの長さが0の200であることがわかります。

HTTP/1.1 200 OK
Content-Language: en-US
Content-Type: text/html; charset=iso-8859-1
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: JSESSIONID=1sh9r73vqvukj;Path=/myGrailsApp
Content-Length: 0
Server: Jetty(6.1.12)

このページは、HTML、タグ(${property})、JSPインクルード(<jsp:include>)、および短いコードスニペットの組み合わせです(<% code %>はい、これは悪い考えです)。ログファイルまたはコンソールには、エラーを示すものは何もありません。Grailsはどういうわけか静かに例外やエラーを隠していますか?

編集:問題はJSP<jsp:include/>インクルードタグに関連しています。すべてのJSPインクルードを削除すると、Grailsがレンダリングされます。GrailsはJSPと互換性がありますか?JSP機能はWebアプリケーション(Jetty、Tomcat)によって提供されるので、そうだと思います。

編集:これはGrails 1.0.4および1.1ベータ2で発生します(1.1はJSPサポートを追加したと主張しています)

4

3 に答える 3

0

はい、Grails は JSP と互換性があります。

完全に空白?「ソースを表示」しても何も得られないのですか?

IntelliJ ユーザーの場合は、Grails プラグインをインストールし、ブレークポイントを設定してコードをステップ実行し、何が起こっているかを確認できます。

他にチェックしたいのは、バージョンと JSTL 標準です。これらは、使用しているサーブレット/JSP エンジンのバージョンによって異なります。

于 2008-12-30T14:14:25.003 に答える
0

明らかに、あなたはこの時点で問題を解決しているでしょうが、この解決策は他の人のためのものです.

今日、私は同じ問題に遭遇しました:

これはmain.gsp(LAYOUT)のコード セクションです。

<head>
    <g:layoutTitle default="Grails" />
    <g:layoutHead />
    <g:javascript src="jquery-1.6.1.min.js" />
</head>

そして、これは私のindex.gsp

<head>
    <title>${title}</title>
    <meta name="layout" content="main" />
</head>

私が行っていたのは、レイアウトから動的に構築され、レイアウトを使用して渡すtitleことindex.gspですmaintitlehtmlheadタグの必須属性です。間違って、タイトルをnull値として渡していました。期待されるページが表示されていませんでした。

したがって、解決策は次のとおりです。

  • 静的なタイトルが必要な場合は、titlegsp ファイルでタグを使用しないでください。上記の場合Grails、デフォルトでタイトルとして使用されます。
  • 動的なタイトルが必要な場合は、それがnull値でないことを確認してください。

別の問題が発生する可能性がありますが、これにより空白ページが発生する場合もあります。

于 2011-07-09T12:23:14.880 に答える