Удаление жесткого кодирования элементов XML из класса действий Struts - PullRequest
1 голос
/ 30 июля 2011

В моем приложении я использую Struts 2. Мы отправляем AJAX-вызов, используя jQuery. Я форматирую данные XML в классе действий Struts 2 и отправляю их как ответ XML на запрос AJAX. Я форматирую данные XML в действиях распорок, подобных этому:

<person>
  <age>

  </age>

  <city>

  </city>
</person>

То, что я ищу, - это перемещение этих данных XML в отдельный файл XML. Кто-то сказал мне, что мы можем использовать Velocity для динамического создания XML. Может кто-нибудь, пожалуйста, помогите мне? Пример кода будет высоко ценится. Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 июля 2011

Вот краткий снимок того, как запустить и использовать Velocity с инструментами:

//init velocity
VelocityEngine velocity = new VelocityEngine();
velocity.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "/path/to/templates/dir/");
velocity.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_CACHE, true);
velocity.init();

//init tools
ToolManager velocityToolManager = new ToolManager();
velocityToolManager.configure("velocity-tools.xml");

//get template
Template template = velocity.getTemplate("demo.vm"); //contains ${msg}

//create context
VelocityContext context = new VelocityContext(velocityToolManager.createContext());

//pass data do context
context.put("msg", "Hello from Velocity");

//process template
StringWriter sw = new StringWriter();
template.merge(context, sw);

//parsed template as a string
String parsedTemplate = sw.toString();
0 голосов
/ 30 июля 2011

Вам доступно несколько вариантов.Во-первых, вы можете использовать JSP для вывода XML.Для этого просто запустите JSP следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<%@ page contentType="text/xml;charset=UTF-8" language="java" %>

Кроме того, вы также можете использовать язык шаблонов, такой как Velocity или Freemarker.

Наконец, немного по-другомуподход, вы можете использовать XML Streaming API (javax.xml.stream пакет), который позволяет программно создавать XML.

Если вы уже используете JSP для своего уровня представления, то использование JSP для вывода XML может бытьСамый простой подход.В противном случае, я бы рекомендовал вам взглянуть на API потоковой передачи.Velocity и Freemarker являются хорошими языками шаблонов, но я бы не стал использовать их только для создания XML, особенно если вы используете что-то другое для генерации HTML.

...