AdminBaseAction.java如下
package cn.sign_up.web.struts.actions;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public abstract class AdminBaseAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
return doExecute(mapping, form, request, response);
}
public abstract ActionForward doExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception ;
}
AjaxDeptDataAction如下
package cn.sign_up.web.struts.actions;import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Set;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import cn.sign_up.domain.Academy;
import cn.sign_up.domain.Department;
import cn.sign_up.web.daoimpl.AdminDaoImpl;public class AjaxDeptDataAction extends AdminBaseAction{
public ActionForward doExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
AdminDaoImpl dao = AdminDaoImpl.getInstance();
String ano = request.getParameter("ano");
Academy academy = dao.findAcademyById(ano);
Set<Department> set = academy.getDepts();
String content = ""; for( Iterator<Department> iterator = set.iterator(); iterator.hasNext();) {
Department dept = iterator.next();
content += dept.getDno();
content += "$";
content += dept.getName();
content += "$"; }
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println(content);
return null;
}
}
请问如何把这个struts1写的改成struts2 给思路就行 具体我自己写 struts2中没有action类可继承 最好能给出doExecute()跟Execute()两个方法的参数
package cn.sign_up.web.struts.actions;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public abstract class AdminBaseAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
return doExecute(mapping, form, request, response);
}
public abstract ActionForward doExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception ;
}
AjaxDeptDataAction如下
package cn.sign_up.web.struts.actions;import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Set;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import cn.sign_up.domain.Academy;
import cn.sign_up.domain.Department;
import cn.sign_up.web.daoimpl.AdminDaoImpl;public class AjaxDeptDataAction extends AdminBaseAction{
public ActionForward doExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
AdminDaoImpl dao = AdminDaoImpl.getInstance();
String ano = request.getParameter("ano");
Academy academy = dao.findAcademyById(ano);
Set<Department> set = academy.getDepts();
String content = ""; for( Iterator<Department> iterator = set.iterator(); iterator.hasNext();) {
Department dept = iterator.next();
content += dept.getDno();
content += "$";
content += dept.getName();
content += "$"; }
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println(content);
return null;
}
}
请问如何把这个struts1写的改成struts2 给思路就行 具体我自己写 struts2中没有action类可继承 最好能给出doExecute()跟Execute()两个方法的参数
解决方案 »
- 连接ActiveMQ的JMX问题
- struts的action标签没有调用相应的action,该怎么解决?
- 求一个正则表达式
- 求教 AXIS 解析SOAP请求
- 请问如何遍历org.hibernate.Query.list ?
- 在Tomcat下部署Struts程序启动时出现异常?
- hibernate字段自动生成问题
- 连SQLServer时,为什么把驱动的jar放到了classpath中还是找不到com.microsoft?
- 请问hibernate使用tomcat的连接池的时候为什么抛出java.lang.UnsupportedOperationException?
- java程序运行两三个小时卡死无报错,控制台停止输出log,每次需重启tomcat
- 帮我解析一下正则表达式!
- 求一个sns的解决方案
import java.util.Iterator;
import java.util.Set;import com.sign_up.bean.Academy;
import com.sign_up.bean.Department;
import com.sign_up.service.AcademyService; public class AjaxDepartmentDataAction{
private AcademyService academyservice;
private Academy academy;
private static final long serialVersionUID = 1L; public AcademyService getAcademyservice() {
return academyservice;
}
public void setAcademyservice(AcademyService academyservice) {
this.academyservice = academyservice;
}
public Academy getAcademy() {
return academy;
}
public void setAcademy(Academy academy) {
this.academy = academy;
}
public String execute(){
academy = academyservice.findById(academy.getAcaId());
Set<Department> departments = academy.getDepartments();
String content = ""; for( Iterator<Department> iterator = departments.iterator(); iterator.hasNext();) {
Department department = iterator.next();
content += department.getDepId();
content += "$";
content += department.getDepName();
content += "$";
}
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println(content);
return null;
}
}
我改成了这样 但是response下面有红线提示,请问怎么处理 还有就是这是个2级下拉框的联动处理,struts配置是不是不要配置result只要写action就可以?execute()方法的返回类型是不是写string
struts2中response=ServletActionContext.getResponse();
这个response类型写什么好 PrintWriter out = response.getWriter();
getWriter()下面老有红线说类型不对
public String execute() throws Exception {
//id = academy.getAcaId();
//System.out.println("id=" + id);
academy = academyservice.findById(academy.getAcaId());
departments = academy.getDepartments();
String content = ""; for (Iterator<Department> iterator = departments.iterator(); iterator
.hasNext();) {
Department department = iterator.next();
content += department.getDepId();
content += "$";
content += department.getDepName();
content += "$";
}
//HttpServletResponse response = (HttpServletResponse) ActionContext
//.getContext().get("response");
//response.setCharacterEncoding("GBK");
//PrintWriter out = response.getWriter();
//out.println(content);
return null; }
struts.xml配置 <action name="getDepartmentData" class="ajaxDepartmentDataAction"></action>
下面是add_world.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%
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>
<script type="text/javascript">
var xmlrequest;
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
xmlrequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
function change(id) {
createXMLHttpRequest();
var uri = "getDepartmentData.action?acaId="+id;
xmlrequest.open("POST", uri, true);
xmlrequest.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlrequest.onreadystatechange = processResponse;
xmlrequest.send(null);
}
function processResponse() {
if (xmlrequest.readyState == 4) {
if (xmlrequest.status == 200) {
var departments = xmlrequest.responseText.split("$")
var displaySelect = document.getElementById("department");
displaySelect.innerHTML = null;
for ( var i = 0; i < departments.length - 2;) {
var op = document.createElement("option");
op.value = departments[i];
op.innerHTML = departments[i + 1];
displaySelect.appendChild(op);
i += 2;
}
}
else {
window.alert("您所请求的页面有异常:"+ xmlrequest.status);
}
}
}function trim(s) {
return s.replace(/^\s*/, "").replace(/\s*$/, "");
}
function check() {
var errStr = "";
if(trim(document.getElementById("name").value) == null || trim(document.getElementById("name").value) == ""){
errStr += "\n年级名称不能为空";
}
if(errStr == "") {
return true;
}
alert(errStr);
return false;
}
</script>
<base href="<%=basePath%>"> <title>增加年级</title> </head> <body>
<br>
<br>
<br>
<center>
<h1>
增加年级
</h1>
</center>
<center>
<form action="saveWorld" method="post" onsubmit="return check();">
<table>
<tr>
<td>
所在学院:
</td>
<td> <select name="world.department.academy.acaId"
onchange="change(this.value);">
<c:forEach items="${academy}" var="academy">
<option value="${academy.acaId }">
${academy.acaName}
</option>
</c:forEach>
</select> </td>
</tr>
<tr>
<td>
所在专业:
</td>
<td>
<select name="world.department.depId" id="department">
<c:forEach items="${departments}" var="department">
<option value="${department.depId }">
${department.depName}
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
年级名称:
</td>
<td>
<input type="text" id="name" name="world.worName" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提交">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
自己先慢慢弄,也请高手指教
......
private HttpServletResponse response;
......
public void setServletResponse(HttpServletResponse reresponse) {
this.response = reresponse;
}
......
public String execute(){
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("你要输出的内容");
return null;
}}
继承了baseActionSurport
httpRequest rs=ServletActionContext.getRequest();
response同上
package com.sign_up.action;import java.util.Iterator;
import java.util.Set;import com.sign_up.bean.Academy;
import com.sign_up.bean.Department;
import com.sign_up.service.AcademyService;public class AjaxDepartmentDataAction {
private Academy academy;
private Integer acaId;
private AcademyService academyservice;
private Set<Department> departments;
private String content; public Academy getAcademy() {
return academy;
} public void setAcademy(Academy academy) {
this.academy = academy;
} public AcademyService getAcademyservice() {
return academyservice;
} public void setAcademyservice(AcademyService academyservice) {
this.academyservice = academyservice;
} public String execute() throws Exception { // academy = academyservice.findById(academy.getAcaId());
academy = academyservice.findById(this.getAcaId());
departments = academy.getDepartments();
content = "";
for (Iterator<Department> iterator = departments.iterator(); iterator
.hasNext();) {
Department department = iterator.next();
content += department.getDepId();
content += "$";
content += department.getDepName();
content += "$"; }
System.out.println(content); return null;
} public Integer getAcaId() {
return acaId;
} public void setAcaId(Integer acaId) {
this.acaId = acaId;
} public Set<Department> getDepartments() {
return departments;
} public void setDepartments(Set<Department> departments) {
this.departments = departments;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
}}
import java.util.Set;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;
import com.sign_up.bean.Academy;
import com.sign_up.bean.Department;
import com.sign_up.service.AcademyService;public class AjaxDepartmentDataAction extends ActionSupport{
private Academy academy;
private Integer acaId;
private AcademyService academyservice;
private Set<Department> departments;
private String content;
private HttpServletResponse response; public Academy getAcademy() {
return academy;
} public void setAcademy(Academy academy) {
this.academy = academy;
} public AcademyService getAcademyservice() {
return academyservice;
} public void setAcademyservice(AcademyService academyservice) {
this.academyservice = academyservice;
} public String execute() throws Exception {
academy = academyservice.findById(this.getAcaId());
departments = academy.getDepartments();
content = "";
for (Iterator<Department> iterator = departments.iterator(); iterator
.hasNext();) {
Department department = iterator.next();
content += department.getDepId();
content += "$";
content += department.getDepName();
content += "$"; }
System.out.println(content);
response = ServletActionContext.getResponse();
response.setContentType("application/xml;charset=UTF-8");
response.getWriter().write(content); return null;
} public Integer getAcaId() {
return acaId;
} public void setAcaId(Integer acaId) {
this.acaId = acaId;
} public Set<Department> getDepartments() {
return departments;
} public void setDepartments(Set<Department> departments) {
this.departments = departments;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public HttpServletResponse getResponse() {
return response;
} public void setResponse(HttpServletResponse response) {
this.response = response;
}}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%
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>
<script type="text/javascript">
var xmlrequest;
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
xmlrequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
function change(id) {
createXMLHttpRequest();
var uri = "ajaxDepartmentData.action?acaId="+id;
// document.write(id);
xmlrequest.open("POST", uri, true);
xmlrequest.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlrequest.onreadystatechange = processResponse;
xmlrequest.send(null);
}
function processResponse() {
if (xmlrequest.readyState == 4) {
if (xmlrequest.status == 200) {
// document.write("ok");
var departments = xmlrequest.responseText.split("$")
var displaySelect = document.getElementById("department");
displaySelect.innerHTML = null;
for ( var i = 0; i < departments.length - 2;) {
var op = document.createElement("option");
op.value = departments[i];
op.innerHTML = departments[i + 1];
displaySelect.appendChild(op);
i += 2;
}
}
else {
window.alert("您所请求的页面有异常:"+ xmlrequest.status);
}
}
}function trim(s) {
return s.replace(/^\s*/, "").replace(/\s*$/, "");
}
function check() {
var errStr = "";
if(trim(document.getElementById("name").value) == null || trim(document.getElementById("name").value) == ""){
errStr += "\n年级名称不能为空";
}
if(errStr == "") {
return true;
}
alert(errStr);
return false;
}
</script>
<base href="<%=basePath%>"> <title>增加年级</title> </head> <body>
<br>
<br>
<br>
<center>
<h1>
增加年级
</h1>
</center>
<center>
<form action="saveWorld" method="post" onsubmit="return check();">
<table>
<tr>
<td>
所在学院:
</td>
<td> <select name="world.department.academy.acaId"
onchange="change(this.value);">
<c:forEach items="${academy}" var="academy">
<option value="${academy.acaId }">
${academy.acaName}
</option>
</c:forEach>
</select> </td>
</tr>
<tr>
<td>
所在专业:
</td>
<td>
<select name="world.department.depId" id="department">
<c:forEach items="${departments}" var="department">
<option value="${department.depId }">
${department.depName}
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
年级名称:
</td>
<td>
<input type="text" id="name" name="world.worName" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提交">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
departments = academy.get(0).getDepartments();// departments for (Iterator<Department> iterator = departments.iterator(); iterator
.hasNext();) {
Department department = iterator.next();
//System.out.println("depsize" + departments.size());
worlds = department.get(0).getWorlds(); // worlds
//System.out.println("worsize" + worlds.size());
}请问怎么 department转换成一个list 我现在这么做worlds这个list有时候有值有时候没有值private List<Academy> academy;
private List<Department> department;
private AcademyService academyservice;
private Set<Department> departments;
private Set<World> worlds;
private String content;