Создайте XML с JSF

Я не очень опытный пользователь PowerShell каким-либо образом, но немного его, что я был подвергнут впечатленному меня много. Можно объединить встроенный cmdlets в цепочку вместе, чтобы сделать примерно что-либо, что Вы могли сделать при подсказке Unix, и существует некоторое дополнительное совершенство для того, чтобы сделать вещи как экспорт в CSV, HTML-таблицы, и для большего количества всесторонних типов системного администрирования заданий.

И если Вам действительно было нужно что-то как sed, всегда существует UnixUtils или GnuWin32, который Вы могли интегрировать с PowerShell довольно легко.

Как давний пользователь UNIX, я действительно однако испытывал немного затруднений, привыкающих к схеме именования команды, и я, конечно, извлеку выгоду больше из него, если я знал больше.NET.

Поэтому по существу, я говорю, что определенно стоит изучить это, если Единственный мыс Windows его не создает проблему.

6
задан Xtreme Biker reinstate Monica 11 September 2014 в 06:24
поделиться

4 ответа

Есть несколько способов сделать это. Делать это в JSP немного неприятно.

Как уже упоминалось, вы можете использовать сервлет и вводить / загружать туда свои переменные. Например, обратившись к контексту сеанса:

MyBean myBean = (MyBean)FacesContext.getCurrentInstance()
                         .getExternalContext().getSessionMap().get("myBean");

Или вы можете вывести его в HTTP-ответ из метода в вашем Backing Bean. Например:

try {
    String xml = "<person>damian</person>";
    FacesContext ctx = FacesContext.getCurrentInstance();
    final HttpServletResponse resp = (HttpServletResponse)ctx.getExternalContext().getResponse();

    resp.setContentType("text/xml");
    resp.setContentLength(xml.length());
    resp.getOutputStream().write(xml.getBytes());
    resp.getOutputStream().flush();
    resp.getOutputStream().close();

    ctx.responseComplete();

} catch (IOException e) {
    e.printStackTrace();
}

Или, если вы используете Facelets , вы можете установить тип ответа в теге .

7
ответ дан 10 December 2019 в 00:42
поделиться

Вы можете установить тип содержимого в вашем JSP. Я предполагаю, что вы используете JSP и создаете xml-контент из вспомогательного bean-компонента? Подобный JSP выводит XML:

<%@page contentType="text/xml"%><?xml version="1.0" encoding="UTF-8"?>
<portfolio>
  <stock>
    <symbol>SUNW</symbol>
    <name>Sun Microsystems</name>
    <price>17.1</price>
  </stock>
  <stock>
    <symbol>AOL</symbol>
    <name>America Online</name>
    <price>51.05</price>
  </stock>
  <stock>
    <symbol>IBM</symbol>
    <name>International Business
    Machines</name>
    <price>116.10</price>
  </stock>
  <stock>
    <symbol>MOT</symbol>
    <name>MOTOROLA</name>
    <price>15.20</price>
  </stock>
</portfolio>

Затем вы можете легко изменить эти жестко запрограммированные значения на bean-значения из вашего вспомогательного bean-компонента, как вы обычно делаете это для JSP, выводящих HTML.

3
ответ дан 10 December 2019 в 00:42
поделиться

Вам необходимо указать тип содержимого (сек. 14.17) возвращаемой страницы как text / xml . В настоящее время он будет установлен как text / html .

Браузеры использовали различные механизмы для определения типа возвращаемых данных, но правильный и самый надежный способ - установить заголовок HTTP Content-type .

Извините - я не разбираюсь в JSF, поэтому не могу посоветовать, как это исправить, но теперь у вас есть кое-что, на что нужно обратить внимание!

0
ответ дан 10 December 2019 в 00:42
поделиться

Я бы хотел, чтобы сервлет возвращал XML, а не материал JSF. Я считаю, что JSF (и JSP и любой другой слой пользовательского интерфейса) возвращает «читаемый человеком» контент. XML является машиночитаемым.

RE: Данные сеанса - я никогда этого не делал, не использовал JSF, просто знаю его как слой пользовательского интерфейса, но быстрый поиск Google возвращает: http://blogs.oracle.com/chrisf/entry/retrieving_jsf_session_variables_in

0
ответ дан 10 December 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: