采用action+struts2标签实现
action负责响应视图请求,从后台调出数据,回传到视图
struts2标签负责生成下拉列表
例子:
数据库:
表名upfilekind
id 类别编号
kindname 类别名称
项目中domain包 中映射类 Upfilekind
属性 id kindname (getter setter方法)
项目中dao包UpfilekindDao ||| daoImpl包下 UpfilekindDaoImpl
项目中service包UpfilekindService |||serviceImpl报下 UpfilekindServiceImpl
Action包下代码:UpfilekindAction
package com.ds.action;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import com.ds.domain.Upfilekind;
import com.ds.service.UpfilekindService;
@Namespace("/upfilekind")
public class UpfilekindAction {
@Autowired
private UpfilekindService upfilekindService;
private Upfilekind upfilekind;
public UpfilekindService getUpfilekindService() {
return upfilekindService;
}
public void setUpfilekindService(UpfilekindService upfilekindService) {
this.upfilekindService = upfilekindService;
}
public Upfilekind getUpfilekind() {
return upfilekind;
}
public void setUpfilekind(Upfilekind upfilekind) {
this.upfilekind = upfilekind;
}
@Action(value="browseUpfilekind",results={
@Result(name="success",location="/success.jsp")
})
public String browseUpfilekind(){
List<Upfilekind> kindlist = upfilekindService.searchAll();
ServletActionContext.getRequest().setAttribute("kindlist",kindlist);
return "success";
}
}
这里面:取出存储类名称的list 命名为kindlist Requst中的名称为kindlist
在jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@taglib uri= "http://java.sun.com/jsp/jstl/core" prefix= "c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<s:action name="browseUpfilekind" namespace="/upfilekind" executeResult="false"></s:action>
<s:select name="upfilekind.kindname" list="#request.kindlist" listKey="kindname" listValue="kindname">
</s:select>
</body>
</html>
这里面先用一个action来响应请求 将executeResult设为false
在select中 list属性从request中取得kindlist listKey和listValue 为你想要取得的字段名称 和 想要显示的字段名称
Ok 测试