четверг, 18 апреля 2013 г.

Мапинг экшина по нескольким параметрам

@RenderMapping(params = {"action=do", "view=doview"})
public String render() {
  ....
}

суббота, 13 апреля 2013 г.

EasyMock

Осмотр одного из замых популярных мокинг-фреймворквов в мире джава:

пятница, 12 апреля 2013 г.

Утилиты JDK для работы с JAX-WS

Когда мы создаем сервер JAX-WS нам может понадобиться JDK/bin/wsgen тулза, если мы создаем сервис типа javax.jws.soap.SOAPBinding.Style.DOCUMENT(а не javax.jws.soap.SOAPBinding.Style.RPC).

Нам нужно сгенерить классы которые определяют аргумент запроса как класс и аргумент респонса как класс.

wsgen -keep -cp {path/where/root/of/compiled/package/with/class/files} -d {path/to/src/folder/where/generated/packages/will/be/inserted} package.class.of.ServiceImpl

Когда мы создаем клиент, нужно пользоваться wsimport

wsimport -keep "http://sub.domain/path/where/wsdl/is/published?wsdl"
В урле мы указываем место где паблишится сервером инфа про сервис, из этой хмл и генерятся все классы для обрщения к сервису.

вторник, 9 апреля 2013 г.

Spring URL-шаблоны

import java.net.URI;
import org.springframework.web.util.UriTemplate;

...

UriTemplate uriTemplate = new UriTemplate (url);// url - String (аля http://domain.com/remoteservice.xml?currency={currency}&playMode={playMode}&version={version})
URI expanded = uriTemplate.expand(urlVariables);//urlVarialbles - Object[] ( в этом случае три строки)

request.parameters != request.attributes

В сервлете, хттп параметры(гет, пост) получаются через getParameter метод реквеста, через getAttribute мы получаем те атрибуты, которыми могут общаться сервлеты при редиректах, также сервлетинджин ложит туда пару атрибутов, дающих экстра инфомацию о запросе.

Атрибуты более широкое понятие касающееся не только запросов, также атрибуты бывают сессионные и контекстные, в этом случае мы имеем дело с атрибутами области запрос.

четверг, 4 апреля 2013 г.

Не выводить переменную, если ее значение не определено

В Velocity(VTL) если мы используем переменную значение которой оказалось не определено на момент обращения к нем мы получим в хтмл обращение к этой переменной:
<!-- в шаблоне -->
<input name="email" value="$email" \>

<!-- в браузере -->
<input name="email" value="$email" \>

Если же мы пометим переменную с помошью Quiet Reference Notation $!email или $!{email}, то в случае неопределенного значения мы получим пустую строку.
<!-- в шаблоне -->
<input name="email" value="$!email" \>

<!-- в браузере -->
<input name="email" value="" \>