كيف يمكنني إرجاع رمز الحالة 404 / 50X من وحدة تحكم الكؤوس المقدسة؟

StackOverflow https://stackoverflow.com/questions/1429388

سؤال

ولدي وحدة تحكم التي تحتاج إلى إرجاع 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.')

http://grails.org/doc/2.2.1/ المرجع / تحكم / render.html

وresponse.sendError وresponse.setStatus هي طريقتان الوحيد الذي أعرفه من. إذا كنت static import HttpServletResponse، ثم انها ليست أن "إلغاء الكؤوس المقدسة مثل".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top