案例功能:
要求从数据库查询出所有试题,手动选择要添加的试题。并且要求试题的顺序可自行改变
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
+ "]";
}
}