optiontransferselect标签 返回数据到action

案例功能:

要求从数据库查询出所有试题,手动选择要添加的试题。并且要求试题的顺序可自行改变


order.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<s:head cache="true" />

<title>试题</title>
</head>
<body>
	<s:form action="exam/question">
		<s:optiontransferselect 
			label="排序试题" 
			labelposition="top"
			name="questionsId" 
			doubleName="orderQuestionsId" 
			list="questions"
			listKey="id" 
			listValue="name" 
			doubleList="orderQuestions"
			doubleListKey="id" 
			doubleListValue="name" 
			selectAllLabel="选中所有"
			addToLeftLabel="向左移动" 
			addToRightLabel="向右移动"
			addAllToRightLabel="全部导入右侧" 
			addAllToLeftLabel="全部导入左侧" /><br/>
		<s:submit value="提交" />
	</s:form>
</body>
</html>

试卷排序的action

package action;

import java.util.ArrayList;
import java.util.List;


import model.Question;

import com.opensymphony.xwork2.ActionSupport;

public class QuestionAction extends ActionSupport {
	//未排序试题
	private List<Question> questions;
	//已排序试题
	private List<Question> orderQuestions;
	//未排序试题Id
	private List questionsId;   
	//已排序试题Id
	private List orderQuestionsId;
	
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		System.out.println("左侧列表的试题"+questionsId);
		System.out.println("右侧列表的试题"+orderQuestionsId);
		//获取到选中的试题Id后 根据Id去数据库中查找出相对应的试题即可
		
		return super.execute();
	}
	
	//传递数据到排序页面
	public String order(){
		questions=selectAll();
		return SUCCESS;
	}
	
	//从数据库获取左侧列表信息
	public List<Question> selectAll(){
		//虚拟数据库
		List<Question> list=new ArrayList<Question>();
		Question q1=new Question(1, 0, "试题1");
		Question q2=new Question(2, 0, "试题2");
		Question q3=new Question(3, 0, "试题3");
		Question q4=new Question(4, 0, "试题4");
		list.add(q1);
		list.add(q2);
		list.add(q3);
		list.add(q4);
		return list;
	}
    
	public List getQuestionsId() {
		return questionsId;
	}
	public void setQuestionsId(List questionsId) {
		this.questionsId = questionsId;
	}
	public List getOrderQuestionsId() {
		return orderQuestionsId;
	}
	public void setOrderQuestionsId(List orderQuestionsId) {
		this.orderQuestionsId = orderQuestionsId;
	}
	public List<Question> getQuestions() {
		return questions;
	}
	public void setQuestions(List<Question> questions) {
		this.questions = questions;
	}
	public List<Question> getOrderQuestions() {
		return orderQuestions;
	}
	public void setOrderQuestions(List<Question> orderQuestions) {
		this.orderQuestions = orderQuestions;
	}   
}




struts.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
 
	<package name="exam" extends="struts-default" namespace="/exam">
     	<action name="orderQuestion" class="action.QuestionAction" method="order">
        	<result name="success">
				/order.jsp
			</result>
        </action>
        <action name="question" class="action.QuestionAction" >
        	<result name="success">
				/index.jsp
			</result>
        </action>
    </package>
	
</struts>

试卷类

package model;

public class Question {
	private int id;
	private int order;
	private String name;
	
	public Question() {
		super();
	}
	public Question(int id, int order, String name) {
		super();
		this.id = id;
		this.order = order;
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getOrder() {
		return order;
	}
	public void setOrder(int order) {
		this.order = order;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "Question [id=" + id + ", order=" + order + ", name=" + name
				+ "]";
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值