刚接手一个系统,STRUTS架构里,有些程序看不太明白,问一下!

编程指南针
Java领域优质创作者
博客专家认证
2005-10-19 05:33:35
有一个交易日志查询:
struts-config.xml里的配置

<action parameter="manager_skt_log" path="/manager_skt_log" type="netunicom.servlets.actions.Manager_skt_logAction" />
<action parameter="manager_skt_log_view" path="/manager_skt_log_view" type="netunicom.servlets.actions.ForwardControl" />

对应的TITLE配置文件里
<definition extends="base-definition" name="manager_skt_log">
<put name="titleString" value="交易日志查询" />
<put name="left" value="/inc/manager_left.jsp" />
<put name="content" value="/manager/manager_skt_log.jsp" />
</definition>


<definition extends="base2-definition" name="manager_skt_log_view">
<put name="titleString" value="交易日志查询" />
<put name="content" value="/manager/manager_skt_log_view.jsp" />
</definition>

manager_skt_log.jsp为查询页面,其代码为:
<%@page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.ArrayList" %>
<%
ArrayList pkg_code=(ArrayList)request.getAttribute("pkg_code");
ArrayList pkg_desc=(ArrayList)request.getAttribute("pkg_desc");
int n=0;
if(pkg_code!=null)
n=pkg_code.size();

%>
<script>
function isnumber(c)
{
if ((c>='0') && (c<='9'))
return true;
else
return false;
}
function checknumber(s)
{
for (i=0; i<s.length; i++)
{
n = s.substr(i, 1)
if (!(isnumber(n)))
{
return false;
}
}
return true;
}
function window.onload()
{
form1.TELNUM.focus();
}
function on_submit()
{
//if (form1.TELNUM.value.length!=11)
//{
//alert("请您输入手机号码!");
//form1.TELNUM.focus();
//return false;
//}
//if (checknumber(form1.TELNUM.value)==false)
//{
//alert("请您输入正确的手机号码!");
//form1.TELNUM.focus();
//return false;
//}
if (form1.beginTime.value==null||form1.beginTime.value=="")
{
alert("请您输入统计起日期!");
form1.beginTime.focus();
return false;
}
if (form1.endTime.value==null||form1.endTime.value=="")
{
alert("请您输入统计截止日期!");
form1.endTime.focus();
return false;
}
form1.action="manager_skt_log_view.do";
form1.submit();
}
</script>
<link rel="stylesheet" href="css/login.css">
<script language="javascript" src="js/popdate.js"></script>
<SCRIPT language=javascript>
init();
</SCRIPT>
<form method="POST" action="" name="form1" >
<table border="0" width="100%" class="mytable" cellspacing="0" cellpadding="0" align="center" height="1">
<tr>
<td colspan="2" height="29" width="578">
<!--标题部分开始-->
<table border="0" width="100%" class="mytable" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="2">
<p align="right"><img border="0" src="<%=netunicom.Sysinit.webroot%>/images/label_blue_left.gif" width="21" height="25"></td>
<td width="25%" background="<%=netunicom.Sysinit.webroot%>/images/label_blue_centerbg.gif" valign="bottom">
<p align="center">
<font class="fl01"> 交易日志查询</font>
</td>
<td width="84%" background="<%=netunicom.Sysinit.webroot%>/images/label_blue_centerbg_oth.gif"><img border="0" src="<%=netunicom.Sysinit.webroot%>/images/label_blue_right.gif" width="25" height="25"></td>
</tr>
</table>
<!--标题部分结束-->
</td>
</tr>
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程指南针 2005-10-20
  • 打赏
  • 举报
回复
K,真不好意思,没看到,谢了哥们儿
Octer 2005-10-19
  • 打赏
  • 举报
回复
这难道不是吗?
form1.action="manager_skt_log_view.do";
form1.submit();
编程指南针 2005-10-19
  • 打赏
  • 举报
回复
manager_skt_log_view.jsp

里取这些参数
String telnum=request.getParameter("TELNUM");
String beginTime=request.getParameter("beginTime");
String endTime=request.getParameter("endTime");
String pkgcode=request.getParameter("pkgcode");


因为manager_skt_log.jsp里的FORM提交地址ACTION=“”,我在Manager_skt_logAction里也没找到向manager_skt_log_view.jsp页面转向的代码,不知这是怎么处理的?

还望大虾耐心看完,帮小弟解决一下!
编程指南针 2005-10-19
  • 打赏
  • 举报
回复
它所涉及的ACTION为Manager_skt_logAction:

package netunicom.servlets.actions;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.util.ArrayList;
import java.util.Hashtable;
import org.apache.struts.action.*;
import org.apache.struts.util.MessageResources;
import org.cj.utils.*;
import netunicom.*;
import netunicom.utils.Tools;
import netunicom.servlets.bean.User_diaochaBean;
import javax.servlet.http.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Manager_skt_logAction extends Action
{

protected static MessageResources messages = MessageResources.getMessageResources("org.apache.struts.actions.LocalStrings");

public Manager_skt_logAction()
{
}

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
//身份验证
Log log=LogFactory.getLog(this.getClass().getName());

String path = mapping.getParameter();

HttpSession session=request.getSession(false);

if(path == null)
{
throw new ServletException(messages.getMessage("forward.path"));
}
else
{
if (session.getAttribute("uniuser")==null)
{
request.setAttribute("ERRDESC","请您登陆系统!");
path="errpage";
}
else
{

//权限控制begin 最后要进行改写
String roleid;
Uniuser myself=(Uniuser) session.getAttribute("uniuser");
roleid=myself.getUser_role();

String menuid="";
Hashtable d=netunicom.sys.Menus.HmenuViews;
netunicom.sys.MenuView myV=null;
if ((netunicom.sys.MenuView) d.get(path)!=null)
myV=(netunicom.sys.MenuView) d.get(path);
if (myV!=null)
{
menuid=myV.getMENUID();
if (netunicom.sys.Role_Menus.haveMenu(roleid,menuid)==false)
{
request.setAttribute("ERRDESC","您没有该操作权限!");
path="errpage";
}
}
//权限控制end;




if (path.compareTo("errpage")!=0)
{


//业务受理begin
ArrayList pkg_code=new ArrayList();//交易码
ArrayList pkg_desc=new ArrayList();//交易类型


String sql_str="select pkgcode from TAB_PR_LIMITCOUNT";
log.info(sql_str);
Connection conn= null;
Statement stmt= null;
ResultSet res=null;


try
{
conn= netunicom.Ds.getDs().getConnection();
stmt= conn.createStatement();
res=stmt.executeQuery(sql_str);
while(res.next())
{
String pkgcode=res.getString("pkgcode");
if(pkgcode==null)
pkgcode="0";
pkg_code.add(pkgcode);
Hashtable d1=new Hashtable();
d1=(Hashtable) netunicom.TradePrSet.pkgdtl.get(PF.trim(pkgcode));
if (d1!=null)
pkg_desc.add((String)d1.get("pkgdesc"));
else
pkg_desc.add(pkgcode);
}
}
catch(Exception e)
{
log.info(e);
request.setAttribute("ERRDESC",e.toString());
path="errpage";
}
finally
{
try
{
if (res!=null)
res.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}
catch(Exception e1)
{
log.info(e1);
request.setAttribute("ERRDESC",e1.toString());
path="errpage";
}
}

request.setAttribute("pkg_code",pkg_code);
request.setAttribute("pkg_desc",pkg_desc);
//业务受理end
}
}


ActionForward retVal;
request.setAttribute("definition","manager_skt_log");
retVal= new ActionForward(path);
retVal.setContextRelative(true);
return retVal;
}
}

}
编程指南针 2005-10-19
  • 打赏
  • 举报
回复
<tr class="tr_h">
<td class="printtable" height="20" valign="middle" width="30%" align="right">
<b>手机号码</b>
</td>
<td class="printtable" height="20" valign="middle" width="70%">
<input type="text" name="TELNUM" value="" maxlength="11" class="input" style="width:100%">
</td>
</tr>
<tr class="tr_h">
<td class="printtable" height="20" valign="middle" width="30%" align="right">
<b>交易类型</b>
</td>
<td class="printtable" height="20" valign="middle" width="70%">
<select name="pkgcode">
<option value="0">全部类型</option>
<%
for(int i=0;i<n;i++)
{
%>
<option value=<%=(String)pkg_code.get(i)%>><%=(String)pkg_desc.get(i)%></option>
<%
}
%>
</select>
</td>
</tr>
<tr class="tr_h">
<td class="printtable" height="20" valign="middle" width="20%" align="right">
<b>开始日期</b>
</td>
<td class="printtable" height="20" valign="middle" width="80%">
<input type = "text" name="beginTime" class="input" style="width:100%" onClick="show_cele_date(beginTime,'','',beginTime)" onKeypress="show_cele_date(beginTime,'','',beginTime)" readonly>
</td>
</tr>
<tr class="tr_h">
<td class="printtable" height="20" valign="middle" width="20%" align="right">
<b>结束日期</b>
</td>
<td class="printtable" height="20" valign="middle" width="80%">
<input type = "text" name="endTime" class="datainput" onClick="show_cele_date(endTime,'','',endTime)" onKeypress="show_cele_date(endTime,'','',endTime)" style="width:100%" readonly>
</td>
</tr>
</table>

<p align="center">

<input class="input" type="button" onclick="on_submit()" value="提交" style="width:50;height:20" name="B1">      <input class="input" type="reset" value="重置" style="width:50;height:20" name="B2">

</p>
</form>
<script language="javascript">
function onSubmit()
{
var beginDate=document.form1.beginTime.value;
var endDate=document.form1.endTime.value;
var curDate="2005-5-8";

if(beginDate.length!=10){
alert("起始时间长度不对,应为YYYY-MM-DD形式");
return ;
}

if(endDate.length!=10){
alert("结束时间长度不对,应为YYYY-MM-DD形式");
return ;
}

//判断结束时间是否大于当前时间
if(endDate>curDate){
alert("结束时间不能大于当前日期 "+curDate);
return;
}

//判断起始时间是否小于结束时间
if(document.form1.beginTime.value > document.form1.endTime.value)
{
alert("起始时间应该小于结束时间,请您检查后重新输入!");
return;
}

//判断查询时间段是否小于31天
var beginYear=beginDate.substr(0,4);
var beginMonth=beginDate.substr(5,2);
var beginDay=beginDate.substr(8,2);

var endYear=endDate.substr(0,4);
var endMonth=endDate.substr(5,2);
var endDay=endDate.substr(8,2);

var curYear=2005
var curMonth=5
var curDay=8

var days=new Array(12);
days[0]=1;

if(isLeapYear(beginYear)){
days[1]=-1;
}
else {
days[1]=-2;
}

days[2]=1;
days[3]=0;
days[4]=1;
days[5]=0;
days[6]=1;
days[7]=1;
days[8]=0;
days[9]=1;
days[10]=0;
days[11]=1;
var diff=(endYear-beginYear)*365+(endMonth-beginMonth)*30+(endDay-beginDay)+days[beginMonth-1];
if(diff>31){
alert("查询时间段不能超过31天");
return ;
}

document.form1.submit();

}
function SelectDate(DivID)
{
var fullPath="<%=netunicom.Sysinit.webroot%>/js/popdate.jsp";
var strDate; //Chinese date formate
var intDate; //Integer date formate
var objEffectDate=eval("form1." + DivID);
intDate=showModalDialog(fullPath,window,"dialogWidth=340px;dialogHeight=300px;center=yes;border=this;help=no");
if (intDate!=null)
{
objEffectDate.value=intDate.substr(0,4)+"-"+intDate.substr(5,2)+"-"+intDate.substr(8,2);
if (objEffectDate.value!="undefined")
{
strDate=intDate.substr(0,4)+"-"+intDate.substr(5,2)+"-"+intDate.substr(8,2);
objEffectDate.value=strDate;
}
else
{
objEffectDate.value="";
}
}
event.returnValue =false;
}

//判断是否为润年
function isLeapYear(year){
if(year%100==0){
if(year%400==0){
return true;
}
}
else if(year%4==0){
return true;
}
return false;
}
</script>



67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧