سؤال

أقوم حاليًا بإنشاء بعض بطاقات vCard باستخدام JSP.لقد اكتشفت أن بعض الأنظمة الأساسية لا تتعرف على vCards التي تم إنشاؤها إلا إذا تم فصل خطوطها بواسطة Carriage Returns (سجل تجاري)، ويبدو أن JSP يستخدم Line Feed (LF) بشكل افتراضي لفصل الأسطر.

هل تعرفون أي طريقة لإخبار JSP بتضمين CR بين كل سطر؟

أتمنى من لديه فكرة لأني لم أجد الكثير هناك..

شكرا لك مقدما!

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

المحلول

إذا كنت بحاجة إلى إصدار تنسيق غير HTML، فيجب عليك استخدام ملف servlet بدلاً من JSP.بهذه الطريقة لا تعتمد على JspServlet و/أو خادم التطبيقات الذي يحدد كيفية إنشاء المخرجات.في كثير من الأحيان لا يمكنك ببساطة التحكم في هذا.

يعد استخدام servlet أمرًا بسيطًا نسبيًا.إنشاء فئة والتي extends HttpServlet وتنفيذ doGet() الطريقة كالآتي:

response.setContentType("text/x-vcard");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
writer.write("BEGIN:VCARD" + (char) 10);
// ...

خريطة هذا في web.xml على url-pattern ل /vcard/* أو *.vcf أو أيًا كان واستخدم طلب servletpath/pathinfo/params لإنشاء مخرجات ديناميكيًا بناءً على عنوان URL.

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