كيف يمكنني إرجاع رمز الحالة 404 / 50X من وحدة تحكم الكؤوس المقدسة؟
-
07-07-2019 - |
سؤال
ولدي وحدة تحكم التي تحتاج إلى إرجاع 404 صفحة ورمز الحالة على شروط معينة. أنا لا يمكن أن يبدو لمعرفة كيفية القيام بذلك في الكؤوس المقدسة. A زميل أوصى هذا الأسلوب:
response.sendError(HttpServletResponse.SC_NOT_FOUND)
والذي يعمل بشكل جيد تماما، ولكنها ليست مثل الكؤوس المقدسة ذاتها. وأنا أعلم القضبان "تجعل طريقة اتخاذ حجة الوضع، ولكن الكؤوس المقدسة" تجعل لا يوجد لديه مثل هذه الوظيفة. هل هناك شيء أنا في عداد المفقودين، ما هو أفضل وسيلة لتحقيق ذلك؟
المحلول
وضبط حالة استجابة مع بيان لها هي جيدة بما فيه الكفاية. أنها لا تبدو قبيحة جدا وغير واضحة جدا:
response.status = 404;
ولقد استعملت هذه بنجاح نفسي و <لأ href = "http://web.archive.org/web/20130824002704/http://www.ibm.com/developerworks/library/j-grails09168/" يختلط = "noreferrer"> شهدت الآخرون أنه بهذه الطريقة جدا. منذ انها مجرد اضع، يمكنك أيضا القيام الأشياء الأخرى بعد ضبط الوضع. أيهما الوضع قمت بتعيين الماضي سيكون ما يستخدم HttpServletResponse عندما فعلا يرسل استجابة إلى العميل.
نصائح أخرى
وresponse.sendError(404)
ستعمل مع الكؤوس المقدسة UrlMappings
في حين response.status = 404
لا لسبب ما. وهذا مفيد إذا كنت تريد أن تجعل صفحة خطأ مخصصة 404، بدلا من مجرد ارسال 404 إلى المستعرض.
وأنا لا أعرف ما هو إصدار بدأ هذا في، ولكن في الكؤوس المقدسة 2.2.1 يمكنك القيام به:
render(status: 503, text: 'Failed to do stuff.')
وresponse.sendError
وresponse.setStatus
هي طريقتان الوحيد الذي أعرفه من. إذا كنت static import HttpServletResponse
، ثم انها ليست أن "إلغاء الكؤوس المقدسة مثل".