2009-05-18 4 views
1

Я работаю на struts2. У меня есть 3 флажок в моей странице JSP (например a.jsp) какstruts2: получение значения нескольких флажков и их проверка на другой странице

<s:checkbox name="authority" fieldValue="ORIGINATOR"/> 
<s:checkbox name="authority" fieldValue="EVALUATOR"/> 
<s:checkbox name="authority" fieldValue="EXECUTOR"/> 

Предположим, что я проверил первые два, и когда я принес значение «авторитет» в моем классе действий в дает «составитель, оценщик». Теперь на другой странице jsp (скажем, b.jsp) у меня есть все эти флажки, как есть, и мне нужно, чтобы эти два флажка были проверены здесь, что я проверил на моей предыдущей странице jsp (a.jsp).

Заранее спасибо.

ответ

4

Вы можете установить для свойства "значение" значение "ИСТИНА", чтобы этот флажок установлен. Понял? Например, вы можете написать код следующим образом: < s: checkbox name = "authority" fieldValue = "ORIGINATOR" value = "% {var}">, в то время как "var" находится на стороне сервера.

Ну, это пример:

a.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" 
    pageEncoding="utf-8"%> 
<%@ taglib uri="/struts-tags" prefix="s" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    <s:form action="Handler" method="post"> 
     <s:checkbox name="authority" fieldValue="ORIGINATOR" label="ORIGINATOR"/> 
     <s:checkbox name="authority" fieldValue="EVALUATOR" label="EVALUATOR"/> 
     <s:checkbox name="authority" fieldValue="EXECUTOR" label="EXECUTOR"/> 
     <s:submit label="Submit"></s:submit> 
    </s:form> 
</body> 
</html> 

b.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" 
    pageEncoding="utf-8"%> 
<%@ taglib uri="/struts-tags" prefix="s" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    <s:form> 
     <s:checkbox name="authority" fieldValue="ORIGINATOR" value="%{isORIGINATORSet}" label="ORIGINATOR"/> 
     <s:checkbox name="authority" fieldValue="EVALUATOR" value="%{isEVALUATORSet}" label="EVALUATOR"/> 
     <s:checkbox name="authority" fieldValue="EXECUTOR" value="%{isEXECUTORSet}" label="EXECUTOR"/> 
    </s:form> 
</body> 
</html> 

Обработчик:

package com.sesoft.test; 

import com.opensymphony.xwork2.Action; 

public class Handler implements Action{ 

    private String isORIGINATORSet = "false"; 

    private String isEVALUATORSet = "false"; 

    private String isEXECUTORSet = "false"; 

    private String[] authority; 

    @Override 
    public String execute() throws Exception { 


     for(String s : authority){ 

      if(s.equals("ORIGINATOR")) 
       isORIGINATORSet = "true"; 
      if(s.equals("EVALUATOR")) 
       isEVALUATORSet = "true"; 
      if(s.equals("EXECUTOR")) 
       isEXECUTORSet = "true"; 
     } 

     return Action.SUCCESS; 
    } 

    public void setAuthority(String[] authority){ 

     this.authority = authority; 
    } 

    public String getIsORIGINATORSet(){ 

     return this.isORIGINATORSet; 
    } 

    public String getIsEVALUATORSet(){ 

     return this.isEVALUATORSet; 
    } 

    public String getIsEXECUTORSet(){ 

     return this.isEXECUTORSet; 
    } 
} 
+0

Sefler, не получил ваш ответ. Подтверждая, что я получаю значение для нескольких флажков, отмеченных запятыми (ORIGINATOR, EVALUATOR, EXECUTOR). И на основе этого значения я должен проверить соответствующий флажок на другой странице jsp. – vivmal

3

преобразовать запятую отделенный string - String[] и установите массив строк как значение checkboxlist.