Apache Wicket é uma estrutura de desenvolvimento da web Java. Sinto que ele não recebe a atenção que merece. Tenho usado o Wicket profissionalmente para projetos reais nos últimos 6 anos e adoro isso! Nesta postagem, vamos dar uma olhada em cinco motivos pelos quais você deve considerar usá-lo.
1. Gerenciamento de estado simples
A experiência de desenvolvimento de aplicativos Wicket é muito semelhante ao desenvolvimento de desktop. Às vezes você quase esquece que está trabalhando com HTTP, porque não há necessidade de salvar estados. Isso ocorre porque no Wicket, a página da web e todos os seus componentes (botões, caixas de texto, etc.) são objetos Java que mantêm seu próprio estado. O estado do componente é serializado na sessão do usuário e desserializado no momento certo.
Simplificando, digamos que você tenha um formulário com campos que o usuário preenche e envia. Em um aplicativo Wicket, este formulário, seus campos e o botão de envio são componentes (objetos Java) que são criados e adicionados à página da web. Ao clicar no botão enviar:
1. Temos acesso automático à entrada do usuário, geralmente na forma de campos POJO.
2. Não precisamos vincular a solicitação HTTP POST à solicitação GET.
Também não precisamos nos preocupar em preencher os campos do formulário com os valores enviados. Isso é feito usando modelos, que são o conceito central do Wicket.
2. Integração HTML padrão
O HTML no Wicket não requer nenhuma tag especial, ao contrário de alguns outros frameworks. Na verdade, você pode pegar qualquer HTML existente e integrá-lo ao seu aplicativo Wicket com pouca ou nenhuma alteração. Para conectar tags HTML a componentes Wicket, apenas um atributo é necessário: wicket: id
Considere um exemplo:
<div wicket:id="userName">Roman</div>
add(new Label("userName", getUsername()));
wicket:id "userName"
HTML Wicket. Wicket Label div
. , . , . Wicket HTML / CSS / JS, , React. , .
3. Javascript ( )
- JS. AJAX, Wicket, , JS- . Wicket JQuery JS- -. , . , . Javascript . Wicket -.
4. /
Wicket - . , , . , , . , , , . :
send(getPage(), Broadcast.BREADTH, new CriticalUpdate(target, payload));
- CriticalUpdate , :
public void onEvent(IEvent event) {
if (event.getPayload() instanceof CriticalUpdate) {
String msg = ((CriticalUpdate)event.getPayload()); //do something with the msg
}
}
5.
/ Wicket , , . Wicket , . , . - CRUD: . . , , , , . Tudo isso pode ser feito usando código Java e JUnit puro, sem recorrer ao Selenium, Puppeteer ou bibliotecas semelhantes.
Conclusão
Espero que você tenha ouvido o suficiente para dar uma chance ao Wicket. Se você estiver interessado em aprender mais:
Vá para o site oficial para obter uma boa documentação.
Dê uma olhada nos exemplos de código de práticas comuns de desenvolvimento da web.