struts1的总结

struts1配置总结 struts1 配置总结 struts1 配置总结 struts1 配置总结 struts1 配置总结 struts1 配置总结 struts1 配置总结 立即下载

为以后用到的时候有个参照,仅此而已。

   框架:struts1+Spring


情形(1)从后台取出数据放入select中并默认选中之前选的

<select name="fullname" style="width: 140px;"class="selectWidth" id="fullname" onChange="changeName()">
	 <option value="0"></option>
<logic:iterate id="list" name="names">
	<option value="<bean:write name="list" property="employeeid"/>" <c:if test="${app.employeeid==list.employeeid }">selected </c:if> >
	    <bean:write name="list" property="employeeName" />
	</option>
</logic:iterate>
</select>

说明一点,后台是request.setAttribute("names",names),所以这里name=“names”即是要遍历的后台request里的List,便利出来的对象定义为list   (id="list")

<bean:write name="list" property="employeeid" />即取出对象的employeeid属性  

这里需要注意,struts1也是支持ognl的,网上有好多人说不可以,但这却真真实实的“${app.fullname==list.employeeid}”可以,您也可以在百度里看jstl中也有跟el的混合使用。


情形(2) 点击某个链接 显示或隐藏

<div onClick='showhidediv("msg")' id="unfold" >+show or hidden</div>

<tbody id="msg" style="display:none;" mce_style="display:none;">

。。。。。。<!--这里是需要显示或者隐藏的-->

</tbody>

js代码:

function showhidediv(id){
        var sbtitle=document.getElementById(xx);
        var unfold=document.getElementById("xx");
        if(sbtitle){
           if(sbtitle.style.display=='block'){
           sbtitle.style.display='none';
            unfold.innerHTML="+show";
           
           }else{
           sbtitle.style.display='block';
           unfold.innerHTML="-hidden";
           }
        }
        }

情形3  ajax实现选择某人后出现此人信息 

function changeName(){
    var em_id = document.getElementById("xx").value;
    var urlStr = "<%=WEBPATH%>/changeName.fb?em_id="+em_id;
    var xmlhttp;
    if (window.XMLHttpRequest){                // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else{                                    // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            var mid = xmlhttp.responseText;
            var buf = mid.split("$$");
            
            var str=buf[1].split(";;");
            var out = document.getElementById("xx");
            out.options.length=0;
            var ojobRole = document.getElementById("xx");
            var owork = document.getElementById("owork");
            
            for(var i=0;i<str.length-1;i++){
                var proj=str[i].split(",");
                out.options.add(new Option(proj[2],proj[0]));
                ojobRole.value=proj[1];
                owork.value=proj[3];
            }        
        }
    }
    xmlhttp.open("get",urlStr,true);
    xmlhttp.send(em_id);
}
是$$数据1;数据2;....$$

所以这里进行了分割传回的数据

情形4  用Spring发送邮件

先配置邮件的邮箱

mail.smtp.auth=true  
mail.smtp.timeout=25000  
mail.smtp.starttls.enable=true  
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory  
mail.smtp.socketFactory.fallback=false  

email.smtpHost=smtp.gmail.com
email.port=465
email.from=xx@gmail.com
email.username=xx@gmail.com
email.password=xx


下面定义发送邮件的类

public class NewEmailSender implements Runnable {
	
	//get info from resource file
	static String host=ResourceBundle.getBundle("email").getString("email.smtpHost");
	static String port=ResourceBundle.getBundle("email").getString("email.port");
	static String mailFrom=ResourceBundle.getBundle("email").getString("email.from");
	final static String username =ResourceBundle.getBundle("email").getString("email.username");
	final static String password = ResourceBundle.getBundle("email").getString("email.password");
	
	
	private List<String> mailTo;
	private List<String> cc;
	private String subject;
	private String msgContent;
	
	
	public NewEmailSender(){
		
	}
	public NewEmailSender(List<String> mailTo,List<String> cc,String subject,String msgContent){
		this.mailTo=mailTo;
		this.cc=cc;
		this.subject=subject;
		this.msgContent=msgContent;
	}
	public static Session getMailSession()
	{
		String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		Properties props = System.getProperties();
		props.setProperty("mail.smtp.host", host);
		props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.smtp.socketFactory.fallback", "false");
		props.setProperty("mail.smtp.port", port);
		props.setProperty("mail.smtp.socketFactory.port", port);
		props.put("mail.smtp.auth", "true");
		Session sendMailSession= Session.getInstance(props, new Authenticator(){
			protected PasswordAuthentication getPasswordAuthentication() {
			    return new PasswordAuthentication(username, password);
			}
		});
		
		return sendMailSession;
	}
	
	
	public void sentEmail(List<String> mailTo,List<String> cc,String subject,String msgContent)
	{
		try{
			Session sendMailSession=getMailSession();
			Message msg = new MimeMessage(sendMailSession);
			
			msg.setFrom(new InternetAddress(username));
			// set the mailTo recipients
			InternetAddress[] address = new InternetAddress[mailTo.size()];
			for (int i = 0; i<mailTo.size(); ++i)
			{
				address[i] = new InternetAddress(mailTo.get(i));
			}
			msg.setRecipients(Message.RecipientType.TO, address); 
			// set the cc recipients
			if (cc != null)
			{
				System.out.println("bcc:"+cc.size());
				address = new InternetAddress[cc.size()];
				for (int i = 0; i<cc.size(); ++i)
				{
					address[i] = new InternetAddress(cc.get(i));
				}
				msg.setRecipients(Message.RecipientType.CC, address);
			} 

			/****/
			msg.setSubject(subject);
			//msg.setText(msgContent);
			msg.setContent(msgContent, "text/html");
			msg.setSentDate(new Date());
			Transport.send(msg);
			
			System.out.println("Message sent.");
		} 
		catch(MessagingException m) 
		{ 
			System.out.println(m.toString()); 
		}
	}

	@Override
	public void run() {
		sentEmail(mailTo, cc,subject, msgContent);	
	}
}

下面用到发送邮件的地方,比如一些事件完成  调用这个类

List<String> mailTo=new ArrayList();//要发送的目的邮箱
List<String> cc=new ArrayList();//抄送的邮箱

.....这里把邮箱的List放入mailTo和cc 

比如mailTo.add(xx@gmail.com);

String subject="xxxxx";//邮件的主题
  StringBuffer sb=new StringBuffer(); //邮件的内容

sb.append("xxxxx");

 NewEmailSender sender=new NewEmailSender(mailTo, cc, subject, sb.toString()); //参数分别为目标邮箱,抄送邮箱,主题,内容
 Thread t = new Thread(sender);  //定义线程  发送
 t.start();


这样就可以发送了,默认是从配置文件里的邮箱给这个邮箱发




Struts1实验项目 学习Struts1的最好案例了,学习很方便的。。。 立即下载

相关推荐

从逻辑门到RISC-V指令:ALU设计实战与Verilog实现

本文详细介绍了从逻辑门到RISC-V指令集的ALU设计实战与Verilog实现方法。通过构建1位ALU并扩展至64位,深入解析了RISC-V指令集的算术逻辑单元实现技巧,包括加法器设计、零标志检测和溢出检测等关键功能。文章还分享了Verilog代码优化、流水线设计和常见问题调试的实用经验,为开发者提供了一套完整的ALU设计解决方案。

weixin_29214335的博客 185

Struts1.x 总结(很全面)

Struts1.x学完,整理一下:Struts1.x是基于MVC框架的,学Struts1.x前先了解MVC一、MVCmodel         业务逻辑 有关数据库的操作view           展示         jsp动态页面controller 控制器     截取数据 分发 转向      Struts中MVC模式执行流程:                            

叶落枫亭 1万+

【WRF理论第十四期】 VEGPARM.TBL 文件详解

WRF 读取 VEGPARM.TBL 文件

WW、forever的博客 576

struts1总结

struts1总结 5个核心组件 ActionServlet-->根据url转到Action-->struts-config.xml ActionForm-->继承AtionForm的java类,包含在Ation中-->Form表单bean-->java Action-->继承Action的java类-->java ActionForward-->根据url转到jsp-->str

u010181847的专栏 517

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

Robot_PLC_HMI_Automation 2916

MAC-电脑中的user文件夹在哪?

MAC-电脑中的user文件夹在哪?

兴趣是最好的老师 1万+

struts1总结——优缺点

作者:李东龙 1.优点:        Struts1是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。         1)struts能充分满足应用开发的需求简单、易懂、敏捷迅速,容易被人采用,功能强大。        2)通过采用模型-视图-控制器(MVC)设计模式,使用struts可以开发使用 JAVA Servlets和javaSe

大米时代 李东龙 5726

windows server 2012安装升级MySQL

本篇文章主要介绍的是windows server 2012 R2操作系统安装升级以及过程中遇到的问题和对应的解决方法。(数据库低版本为:mysql-5.7.27-winx64;数据库数据库高版本为:mysql-5.7.44-winx64;提示:以下是本篇文章正文内容,下面案例可供参考。

qq_42776231的博客 780

入门Struts1第一讲——Struts1入门就这么简单

现在终于进入框架的学习中了,前面还有好几个框架等待着我们呢。我们先来学习Struts1框架,然后再过渡到Struts2框架的学习中。下面我们开始学习Struts1框架。Struts简介Struts是apache开发的一个web层的框架,它主要用于简化web层的开发,Struts针对web层的一些常用操作,例如: 表单数据的封装、校验和数据的回显 国际化开发 文件上传 异常处理 等等…Struts都提

李阿昀的博客 2万+

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

【华为OD机试真题E卷】300、 出租车计费 、靠谱的车 | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS)

题目描述 >程序员小明打了一辆出租车去上班,出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大,出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常 >  比如: 1、23再多一块钱就变为25; 2、39再多一块钱变为50; 3、399再多一块钱变为500; >  小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋,给出计费表的表面读数,返回实际产生的费用

KJ.JK 4万+

struts1 与 struts2的区别

Struts 2是在WebWork基础上发展起来的。从某种程度上来讲,Strut2没有继承Struts 1的血统,而是继承了WebWork的血统。或者说,WebWork衍生出了Struts 2,而不是Struts 1衍生了Struts 2。因为Struts 2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证;而且吸收了Struts 1和WebW...

dfyg28276的博客 112

AWR2243的等效相位中心与虚拟通道

在俯仰维方向上,不重合的虚拟通道有8个,排序为1:4,9:12。每个虚拟阵元之间的间隔为lambda/2。实际y轴方向虚拟阵列只跨越了8*lambda/2的距离。等效相位中心与虚拟通道类似,只是每个相位中心之间间隔为lambda/4,实际y轴方向等效相位中心只跨越了8*lambda/4=7.59mm的距离

qq_50974341的博客 1981

Struts1 和 Struts2

关于Struts2的出现缘由和好处就不多说啦,看了几篇总结的不错的文章,整理下贴出来,共同学习了。 Action的区别 对于有着丰富的Struts1.x开发经验的朋友来说,都十分的清楚Action是整个Struts框架的核心内容,当然Struts2也不例外。不过,Struts1.x与Struts2的Action模型很大的区别。 Struts2和Struts1.x的差别,最明显的就是Strut

袁伏彪 —— 共享,共赢 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

深入Struts 1.1

为基于MVC模式的Web应用最经典框架,Struts已经正式推出了1.1版本,该版本在以往版本的基础上,提供了许多激动人心的新功能。本文就将带你走进Struts 1.1去深入地了解这些功能。说明:希望本文的读者能有一定的Struts使用基础。1、Model 2Struts是基于Model 2之上的,而Model 2是经典的MVC(模型-视图-控制器)模型的Web应用变体,这个改变主要是

lixrxyy的专栏 1301

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

struts1和struts2的区别

下面有关struts1和struts2的区别,描述错误的是? B A Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口 B Struts1 Action对象为每一个请求产生一个实例。Struts2 Action是单例模式并且必须是线程安全的 C Struts1 Action 依赖于Servlet API,Struts 2 ...

熊仙森滴Blog 2430

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

struts1中的jQuery ajax

上个星期做了上传Excel的功能,本来想使用jQuery的

David_lou的专栏 3168

Struts1和Struts2对比

最近学习了Struts1和Struts2.很多人、很多资料都提到。Struts2不是从Struts1发展而来的。Struts2的前身是WebWork。那它俩到底有多大的不同呢,看了一些资料,下边就来比较比较。一、架构分析Struts1的架构图: 执行流程: 1.用户在浏览器端发送请求,服务器(比如:Tomcat)创建HttpServletRequest和HttpServletResponse对象

大道至简 1699

Struts1与Struts2

Struts1就不多说了,它遵循并实现了MVC的设计思想,在传统的SSH架构中体现着至关重要的作用。        今天我们主要说说Struts2,并简单对比一下Struts1和Struts2,供大家学习和参考。

劝学 786

struts1和struts2的对比

lwthad的博客 201

Struts1和Struts2的区别

struts1:基于Servlet(ActionServlet) actionForm众多(类的爆炸) action单例(数据安全[线程安全]问题). 将所有任务的解决都集于一身.(不容易扩展和定制) ++action位于控制层++. extends Action{…} action需要struts1的action和原生servlet api(HttpServletRequest,HttpSe...

小黄鸭的博客 184

深入Struts 1.1 -转贴

1、Model 2 Struts是基于Model 2之上的,而Model 2是经典的MVC(模型-视图-控制器)模型的Web应用变体,这个改变主要是由于网络应用的特性--HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到一种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。 下图表示一个基于

叮叮咚咚 1159

Struts1和Struts2的比較

特性 Struts 1 Struts 2 Action類 Struts 1要求Action類要擴展自一個抽象基類。Struts 1的一個共有的問題是面向抽象類編程而不是面向接口編程。 Struts 2的Action類實現了一個Action接口,連同其他接口一起麳實現可選擇和自定義的服務。Struts 2提供一個名

javaqun的博客 551

struts1与struts2流程图

struts1流程: struts2流程:

vincent 653
上一篇: 对1-9三个数组成1:2:3的自己理解
下一篇: java对象值传递和对象传递的总结
beyond667
博客等级 码龄15年 41粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值