サーブレット セッション属性と JQuery を使用して div を表示する際に問題があります。文脈なしで説明するのは難しいので、ご容赦ください。
「result.jsp」ページがあります。jsp には、「Generate URL」リンク、空の入力テキスト フィールド、および「addThis」div があります。リンク「Generate URL」は、jquery ajax メソッド「utilComp()」を呼び出します。このメソッドは、セッション属性「saveLink」を設定するサーブレットを呼び出し、値を返し、空のテキスト フィールドに入力します。
属性セッション「saveLink」が null の場合 (URL の生成がまだクリックされていないため)、result.jsp のロード時に div を非表示にする必要があります。if test="${not empty saveLink}" を使用してこれを行うと、div が非表示になります。
私の問題はそれを取り戻すことです。ajax utilComp() が実行された後、常に属性 saveLink が設定された後、「addThis」div を表示する必要があります。どうすればこれを達成できるか考えている人はいますか?ヘルプやアイデアをいただければ幸いです。
これは、重要なスニペットのみが表示された RESULT.JSP です。
<script type="text/javascript">
function utilComp() {
var jqXHR = $.ajax({
type: "POST",
url: "http://www.central.com/sharemake.do",
async: false,
global: false,
done: function(response){
return response;
},
fail: function(e){
alert('Error: ' + e);
}
}).responseText;
$('#savelink_id').val( jqXHR );
</script>
<a href="javascript:utilComp()"> Generate Link </a>
<input type="text" name="savelink_name" id="savelink_id" value="<c:out value="${saveLink}" />" />
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_gmail" addthis:url="<c:out value="${saveLink}"/>" </a>
</div>
これは、utilComp() によって呼び出されるサーブレット コードです。
String addressID = "http://www.central.com/generate"
session.setAttribute("saveLink", addressID);
String resultToReturntoAjax = addressID ;
PrintWriter out = response.getWriter();
response.setContentType("text/text;charset=utf-8");
response.setHeader("cache-control", "no-cache");
out.println(resultToReturntoAjax);