Na seção anterior, concluímos usando o Datagrid para exibir todas as informações do produto. Nesta seção, começamos a adicionar várias funções: Adicionar, atualizar, excluir e consultar. Primeiro, implementamos a exibição na recepção e depois fazemos o plano de fundo para obter dados.
1. Implementação em primeiro plano da adição, atualização, exclusão e consulta funções
Existe uma propriedade da barra de ferramentas no controle Datagrid, que adiciona a barra de ferramentas. Podemos adicionar esses botões à propriedade da barra de ferramentas para obter funções correspondentes. Vamos primeiro olhar para a definição de barra de ferramentas da documentação oficial:
Usamos matrizes para definir a barra de ferramentas e adicionar o código a seguir à página query.jsp:
<%@ página linguagem = "java" import = "java.util.*" PageEncoding = "utf-8"%> <! margem: 1px; } .searchbox {margin: -3; } </style> <script type = "text/javascript"> $ (function () {$ ('#dg'). DataGrid ({// altere o endereço de URL para solicitar a categoria URL: 'category_QueryJoinCoCount.Action', o número do singleselect: False // se verdadeiro single line é permitido, o SetEnção é o que é o SetEnção. per page, the default is 10 pageSize:5, //Set the optional number of records per page for user selection, the default is 10,20,30,40... pageList:[5,10,15,20], idField:'id',//Specify id as the identification field, which is useful when deleting and updating. If you configure this field, page change will not affect the selected item when turning the página/ *************************************** categoria-- '); // Retorna a linha selecionada, se nenhuma linha for selecionada, retorne uma matriz vazia se (linhas.Length == 0) {// coloca a mensagem imediata $ .messager.show ({// a sintaxe é semelhante a métodos estáticos em java. } else {// solicita se deve confirmar a exclusão. Se confirmado, execute a lógica da exclusão $ .Messager.Confirm ('Excluir Confirmar diálogo', 'tem certeza de que deseja excluir este item?', Function (r) {if (r) {// operação de saída; alert ("-excluir operação-")}}); }}}}, '-', {// O botão de consulta não é um linkbutton, ele possui sintaxe, mas também suporta a análise de text de tag html: "<input id = 'ss' name = 'ss' name = 'ss' />"}, // converte a caixa de texto ordinária em uma caixa de pesquisa de uma queda. Pesquisador: function (valor, nome) {// Valor representa o valor inserido // operação de consulta}, prompt: 'Por favor, insira a palavra -chave de pesquisa' // exibição padrão}); / ******************************************************************* </script> </ad head> <body> <tabela id = "dg"> </itlast> </body> </html>Dessa forma, configuramos uma estrutura de primeiro plano para adicionar, atualizar, excluir e consultar. Agora ele pode ser exibido em primeiro plano. Não há dados em segundo plano, apenas uma caixa rápida aparece, mas a função de exibição foi concluída. Vamos dar uma olhada no efeito:
Em seguida, completaremos as funções correspondentes uma a uma.
2. Implementação da consulta de categoria Datagrid
A implementação da consulta é a mais simples. Digite a palavra -chave na caixa de pesquisa e depois passe a palavra -chave como um parâmetro para a ação e, em seguida, o serviço retira os dados do banco de dados, empacota -o para o formato JSON e o passa para a recepção para exibição. Esse processo é o mesmo que as informações do produto exibidas antes. Precisamos adicionar apenas o código para a parte de pesquisa no JSP acima, e não há necessidade de alterar os outros códigos. O código adicionado é o seguinte:
//Convert the ordinary text box into a query search text box $('#ss').searchbox({ //Trigger the query event searcher:function(value,name){ //value represents the input value//alert(value + "," + name) //Get the keyword of the current query, load the corresponding information through DataGrid, and use load to load and display all lines on the first page. //If a parameter is specified, Ele substituirá o atributo 'Queryparams'.O método de carga pode carregar todas as linhas na primeira página. Tem um parâmetro. Se especificado, ele trará Queryparams com ele. Caso contrário, os parâmetros especificados pelos Queryparams acima são passados por padrão. Aqui, definimos o tipo para o valor do valor, ou seja, a palavra -chave consulta inserida pelo usuário e depois a passamos para a ação. As pesquisas em segundo plano no banco de dados com base no valor inseridas pelo usuário e o retornam ao primeiro plano. Os resultados da execução são os seguintes:
Dessa forma, concluí a função de pesquisa, que é relativamente simples.
3. Implementação da exclusão da categoria Datagrid
Agora vamos implementar a função Excluir. A partir do JSP acima, podemos ver que, antes da exclusão, determinamos se o usuário selecionou um registro. Caso contrário, daremos ao usuário um prompt. Se for selecionado, uma janela pop-up permitirá que o usuário confirme. Se for verdade, a função Excluir será executada. Há um detalhe a ser observado. Se você deseja excluir vários registros de uma só vez, a propriedade SingleSelect acima deve ser definida como falsa.
Primeiro, complementamos o código excluído no query.jsp acima, veja abaixo:
{iconCls: 'icon-remove', texto: 'excluir categoria', manipulador: function () {// julgue se existem registros de linha selecionados, use getSelections para obter todas as linhas selecionadas var linhas = $ ("#dg"). Datagrid ("getSelections"); // Retorna a linha selecionada, se nenhuma linha for selecionada, retorne uma matriz vazia se (linhas.Length == 0) {// coloca a mensagem imediata $ .messager.show ({// a sintaxe é semelhante a métodos estáticos em java. } else {// solicita se deve confirmar a exclusão. Se confirmado, a lógica da exclusão é executada $ .messager.confirm ('Excluir Confirmar diálogo', 'tem certeza de que deseja excluir este item?', Function (r) {if (r) {// 1. Obtenha o ids i; {ids + = linhas [i] .id + ","; Operação $ ("#DG"). DataGrid ("UNSELHEIRA"); MSG: 'Excluir falhou, verifique a operação', Timeout: 2000, Showtype: 'Slide',}); }}}}}}} Se o usuário optar por excluir, uma caixa de diálogo será exibida primeiro. Quando o usuário determina que ele deseja excluir, primeiro precisamos obter o ID do produto selecionado pelo usuário, consulte esses IDs em uma string e envie uma solicitação AJAX para o segundo plano. O primeiro parâmetro em $ .post é enviado para essa ação, o segundo parâmetro é o parâmetro enviado e o terceiro parâmetro é a função de retorno de chamada, ou seja, após a exclusão ser bem -sucedida, o método na função é executado. O resultado do parâmetro da função é transmitido do plano de fundo e o quarto parâmetro é opcional, que é o tipo de dados de retorno. Vamos nos concentrar no conteúdo em $ .post. Quando o plano de fundo retorna um "verdadeiro" para indicar que a exclusão é bem -sucedida, chamamos o método Reload no Datagrid para atualizar a página. A recarga é a mesma da carga usada na consulta anterior. A diferença é que a recarga permanece na página atual após a atualização, enquanto a carga exibe a primeira página.
Ok, a parte da página front-end está escrita. Em seguida, preencha o método correspondente em segundo plano. Primeiro, adicione o método Deletebyids na categoria Service e implemente o método em sua classe de implementação CategoryServCeimpl:
// CategoryService Interface Public Interface CategoryService Estende BaseService <Categoria> {// Informações da categoria de consulta, Lista pública de administrador em cascata <Categoria> QueryJoinAccount (Tipo de String, Int Page, Int Size); // consulta o nome da categoria // consulta o número total de registros com base nas palavras -chave públicas long getCount (tipo de string); // Exclua vários registros com base no IDS public void DeletebyIds (IDs da String); } // CategoryServiceImpl Classe de implementação @suppresswarnings ("desmarcada") @service ("categoryService") Categoria de classe pública StringImpl estende BasEServiceImpl <category> implementa (categoryService {// outros métodos são publicados e escritos ... HQL = "Exclua da categoria C onde C.id in (" + IDS + ")"; getSession (). CreateEquery (HQL) .ExecuteUpdate (); }} Depois de escrever a parte do serviço, começaremos a escrever a parte da ação. Como queremos transmitir os dados do IDS da recepção, deve haver uma variável na ação que implementa os métodos GET e Set para receber esses dados. Além disso, precisamos passar o resultado para a recepção. Quando fazemos consultas em cascata no capítulo anterior, o método usado é para empacotar os dados do resultado da consulta no formato JSON e passá -los para a recepção, para que um mapa seja necessário e, em seguida, o mapa é convertido em formato JSON através do arquivo de configuração. Aqui, os dados que passamos para a recepção são relativamente simples. Se excluirmos com sucesso as ações, podemos simplesmente passar um "verdadeiro" para que não precisemos empacotá -lo no formato JSON. Nós o transmitimos através do streaming. O princípio é o mesmo de antes. Primeiro Ministro, temos que ter um objeto de fluxo para salvar os bytes "verdadeiros" e, em seguida, através da configuração, o objeto é transmitido para a recepção. Ainda escrevemos esses dois objetos em Baseaction, como segue:
@Controller ("Baseaction") @Scope ("Prototype") Public Class Baseaction <T> Estende o ACTIONSupport implementa o requestAware, sessionAware, ApplicationAware, Modeldriven <T> {// Faça com que os IDs sejam excluídos, deve haver um método obtido e definido // o fluxo é usado para retornar os dados para o primeiro plano. Esses dados são obtidos por suportes e depois transmitidos para o primeiro plano através da forma de um fluxo; portanto, implemente o método GET para os IDs de string protegidos; inputStream protegido InputStream; // omitido abaixo ...} Os métodos correspondentes na categoryAction são os seguintes:
@Controller ("CategoryAction") @Scope ("prototype") Categoria da classe pública estende Baseaction <Category> {public String queryJoinCoCount () {// omitido ...} public String DeLeteByIds () {System.out.println (ids); categoryService.DeleteByIds (IDS); // Se a exclusão for bem -sucedida, ela será executada para baixo. Passamos "verdadeiro" para o primeiro plano na forma de um fluxo inputStream = new ByteArrayInputStream ("true" .getBytes ()); // salve os bytes de "true" no fluxo InputStream Return "Stream"; }} Em seguida, vejamos a configuração correspondente no struts.xml:
<Truts> <constante name = "struts.devmode" value = "true"/> <names package = "shop" estende = "json-default"> <!-Jason-Default herda struts-default-> <! Ação configurada na primavera, porque deve ser entregue ao gerenciamento da mola-> <ação name = "category_*" method = "{1}"> <resultado name = "jsonmap" type = "json"> <!-omitt-> </resultado> <resultado name = "type =" stream "> <!-na forma de fluxo, stream é-> Os dados são transmitidos no ImputStream-> </resultado> </action> <ação name = "conta_*" method = "{1}"> <resultado name = "index">/index.jsp </resultado> </ction> <!-usado para concluir o encaminhamento da ação da solicitação do sistema, todas as solicitações são entregues para executar-<! name = "send">/web-inf/{1}/{2} .jsp </resultado> </action> </package> </struts>Dessa forma, fizemos a operação de exclusão e vemos o efeito:
Depois que o teste for bem -sucedido, também podemos selecionar vários itens para excluir ao mesmo tempo. Neste ponto, a função de exclusão é concluída.
Endereço original: http://blog.csdn.net/eson_15/article/details/51338991
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.