私はjspページを表示していて、サーブレットに対してajax呼び出しを行っています。これにより、ページに表示される完全なhtmlコードが提供されます。正常に動作しますが、サーブレットファイルではprintWriter.write(...)
、htmlコードを含む複数の行が含まれているように見えます。サーブレットを介して大きなHTMLコードを作成する必要があるため、保守が難しくなります。これを行うための他の適切な/より良い方法はありますか?サーブレットにHTML行とロジックを書き込むことができますが、それらを分離するのは困難です。
jspページでのajax呼び出し:
$.ajax({
type: 'POST',
url: 'myServlet',
data: requestData,
dataType: "text",
}).done(function(responseData) {
$(divId).html(responseData);
});
サーブレットクラスからのいくつかのコード:
.....
String username = user.getName();
if (username != null && !username.trim().isEmpty())
username = username.substring(0, username.indexOf(" "));
else
username = "";
printWriter.write("<span id=\"username_"+i+"\" style=\"display: none;\">"+ username +"</span>");
printWriter.write("<form action=\"\" method=\"post\" name=\"userClickForm_"+i +"\" id=\"userClickForm_"+i +"\">");
printWriter.write(" <input type=\"hidden\" name=\"userId\" value=\""+userId +"\"/>");
printWriter.write("</form>");
......
HTMLコードとビジネスロジックを混在させる主な理由は、条件とループ構造に基づいてdividを提供する必要があるためです。