سؤال

ما هي الطريقة الصحيحة لإنشاء ارتباط تشعبي في Spring+JSP؟يجب أن تكون هناك طريقة أفضل من مجرد الترميز في ملف <a href="..."> بطاقة شعار.خذ على سبيل المثال صفحة تعرض الأشخاص.عنوان URL هو people.htm.تقوم وحدة التحكم المقابلة بإحضار الأشخاص من قاعدة البيانات وإجراء فرز اختياري للأعمدة.قد يبدو JSP كما يلي:

<table>
<tr>
  <td><a href="people.htm?sort=name">Name</a></td>
  <td><a href="people.htm?sort=age">Age</a></td>
  <td><a href="people.htm?sort=address">Address</a></td>
</tr>
...

يبدو هذا سيئًا مثل عنوان URL people.htm تم ترميزه بشكل ثابت في JSP.يجب أن تكون هناك طريقة لجعل Spring يقوم تلقائيًا ببناء ملف <a> العلامة باستخدام عنوان URL المحدد في servlet.xml.

يحرر:ربما يجب أن أستخدم نموذج الربيع.

هل كانت مفيدة؟

المحلول

والشيء الوحيد الذي يتبادر إلى الذهن هو JSTL معيار العلامة <c:url>. على سبيل المثال :

<c:url var="thisURL" value="homer.jsp">
  <c:param name="iq" value="${homer.iq}"/>
  <c:param name="checkAgainst" value="marge simpson"/>
</c:url>
<a href="<c:out value="${thisURL}"/>">Next</a>

والآن هذا لن تحصل على خرائط بريمج أو ما شابه ذلك ولكن لا شيء سوف. انها ليست شيئا يمكن أن تفعله حقا برمجيا (بعد كل شيء، وبريمج يمكن وعادة ما يفعل الخريطة لمجموعة من عناوين المواقع). ولكن هذا سوف تأخذ الرعاية من الهروب بالنسبة لك.

نصائح أخرى

وأنا لم أر هذا النوع من الوظائف في الربيع النقي (على الرغم من الكؤوس المقدسة تقدم أشياء من هذا القبيل).

لحالتك الخاصة قد تفكر في إزالة جزء الملف وفقط باستخدام سلسلة الاستعلام كما الخاصية href:

<td><a href="?sort=name">Name</a></td>
<td><a href="?sort=age">Age</a></td>
<td><a href="?sort=address">Address</a></td>

وهذه الروابط إلحاق سلسلة الاستعلام إلى عنصر مسار رابط الحالي.

وأفضل وسيلة لخلق صلة هي:

<a href="<%=request.getContextPath() %>/people">Name</a>

<٪ = request.getContextPath ()٪> بالتأكد من أن الصحيح URI سوف تؤخذ بعين الاعتبار.

و"نوع" معلمة يمكنك الحصول على أكثر مع حقل مخفي وتغيير قيمة مع قليلا من جافا سكريبت:

<input type="hidden" name="sort" id="sort" value="name">

وطريقة تحكم ينبغي أن تبدو هذه:

@RequestMapping("/people")
public String createUser(String sort) {

   ...

}

في Spring MVC في jsp:

يمكنك استخدام:

الارتباط التشعبي العام:

<a href="/Portfolio/login">Click Here</a>

في حالة المرور من وحدة التحكم:

<a href="/Portfolio/${page}">Click Here</a>

علامات جي إس بي

<c:url var="URL" value="login">
<c:param name="param" value="${parameter}"/>
</c:url>
<a href="<c:out value="${URL}"/>">Click Here</a>

نأمل أن يساعد ..:)

واستيراد هذه الحزمة في ملف التخطيط الاستراتيجي المشترك الخاص بك

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

وعندما تريد إعادة توجيه صفحة جديدة أو رابط ثم استخدام لمثل.

<a href='<c:url value="url of next page" />'>Home</a>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top