As caixas de seleção são muito usadas no desenvolvimento da Web. Agora usamos a etiqueta da caixa de seleção do STRUTS2 para implementar alguns problemas que frequentemente encontramos no desenvolvimento.
Vamos dar uma olhada nas propriedades desta tag:
NOTA: O ListKey é equivalente ao atributo de valor no HTML. Esse valor é realmente o que queremos usar em segundo plano ao interagir com o plano de fundo; ListValue é apenas uma exibição de conteúdo.
O usuário selecionou seu curso favorito e agora precisa modificar o curso que você selecionou, pule para a interface de modificação e ecoando o curso selecionado.
O usuário selecionou a interface do curso:
Clique no botão e insira a interface de modificação do curso:
Nota: Na interface de modificação, você deve ecoar a seleção inicial do usuário.
O usuário selecionou a interface do curso:
<Body> Seu curso: <form ação = "checkboxaction_test.action" method = "post"> <s: checkboxlist list = "{'java', 'net', 'php', 'c ++'}" name = "courses"/> </br> <input type = "submit" value = "eu quero modificar"/>Código de ação:
public class OBSTACIONACIONE ESTENDE AÇÕES Support {private estático final serialversionuid = 1L;/*O curso selecionado pelo usuário (String, precisa remover espaços)*/Cursos de String privada; public string getCourses () {Return Turses;} Public Setcours (} Strings) {this.courses = {} Courses = Courss = Courses; Deve ser removido dessa maneira, TRIM () não funciona]*/String Courstrs = this.courses.Replaceall ("", "");/*Defina uma coleção para armazenar os cursos selecionados pelo usuário na coleção*/list <String> userCourses = new Arraylist <string> ();/*Travel*/para (stryl> Coursts.split (",")) {userCourses.add (str);}/*Salvar os cursos selecionados pelo usuário no contexto de contexto OGNL*/actionContext.getContext (). Puts ("usecourses", userrcours);/*Passe todas as caixas de verificação na forma de uma coleção para a coleta para a coleta e a coleção e depois a coleta e a coleta de uma coleção e a coleta de uma coleção para exibir uma coleção para a sele ArrayList <String> (); cous.add ("java"); cous.add (". Net"); cous.add ("php"); cous.add ("c ++");/*salve todos os cortes no contexto de ognl*/actionxt.getContext ().Modifique a interface:
<Body> O curso que você selecionou é: <s: checkboxlist name = "Courses" list = "#cous" value = "#userCourses" /> </body>
Nota: Na interface de modificação, é muito simples alcançar o eco do resultado. Além disso, precisamos apenas do nome do atributo # para obter os valores de lista e valor, porque já colocamos o objeto no ActionContext, ou seja, o contexto de OgnllContext na ação.
Aqui usamos um caso semelhante para nos aproximar do ambiente de desenvolvimento da simulação:
O usuário seleciona seu ídolo (um objeto Javabean) e, em seguida, pula para a interface de modificação para modificá -lo e ecoa os dados na interface de modificação.
O usuário selecionou a interface do ídolo:
Modifique a interface (para implementar dados de dados)
O usuário selecionou a interface do ídolo:
<body> Your idol: <form action="checkBoxListAction.action" method="post"> <s:checkboxlist list="#{1:'Deng Xiaoping',2:'Xi Jinping',3:'Hu Jintao',4:'Li Keqiang'}" name="ids" listKey="key" listValue="value"/></br> <input type="submit" value = "eu quero modificar"/> </morm> </body> Nota: Lista é uma coleção de mapas criados por Ognl. ListKey é equivalente ao valor real do valor do formulário enviado. Passamos a chave do mapa para o plano de fundo para processamento.
Objeto Javabean:
public class Usuário {/* ID do usuário*/private Integer uid;/* nome de usuário*/private String uname;/* Construtor de não-argumento*/public user () {}/* construtor*/public user (integer uid, string uname) {this.uid = uid; this.uname = unamerid; uid) {this.uid = uid;} public string getUname () {return uname;} public void setUname (string uname) {this.uname = uname;}}Código de ação:
public class CheckBoxListAction estende o ACTIONSupport {private estático final seriialversionuid = 1L;/* Coleção de ídolos*/Lista privada <suser> usuários;/* Idol ID String*/private string IDS; public list <users> getUsers (isto) {Return Users;} public void (list (user> users) {isto SetIds (string IDS) {this.ids = ids;} public string Execute () {/*simule para obter todos os ídolos do banco de dados, passe -os para a recepção para exibir e compará -los com o novo Usuário*/Users = new ArrayList <User> (); Jinping ")); usuários.add (novo usuário (3," hu jintao ")); usuários.add (novo usuário (4," li keqiang "));/*salvar no contexto de Ognl*/actionContext.getContext (). Put (Usuários", Usuários); ArrayList <Teger> ();/*Obtenha os IDs selecionados pelo usuário e remova os espaços [deve ser usado dessa maneira, o método TRIM () não funciona]*/ids = iDs.replaceAll ("", "");/*iteração*/para (str str: ods.split ("),") {userIdsdsd (*/*/*/str: str: str :split (",")) {userIdsdddd (*/*/*/str: str: str: str: ("),"); Conjunto de contexto*/actionContext.getContext (). put ("userIds", UserIDs); retorne este.success;}}Modifique a interface (ecoar os dados):
<Body> Seu ídolo é: <s: checkboxlist name = "users" list = "#users" listkey = "uid" listValue = "uname" value = "#userIds"/> </body>
Nota: ListKey e ListValue são duas propriedades do Javabean. Eles serão colocados na pilha de valor quando a iteração da caixa de seleção, portanto não há necessidade de obtê -la na forma de #NamesPace. Você pode obtê -lo diretamente usando o nome do atributo. O valor do valor é a coleta de UIDs em Javabean, que será correspondente automaticamente e selecione o valor correspondente.
Apegado:
1. Se o seu projeto não usar o Freemaker, mas o erro mostrado na figura abaixo será exibido!
Então, parabéns, é porque sua tag Struts2 não tem atributo de nome! ! ! ! (Uma lição de lágrimas, fui enganado por duas horas!)
O exposto acima é todo o conteúdo deste artigo sobre como aprender o código da instância da caixa de seleção Struts2 da estrutura Java, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!