struts1的总结

来源:互联网 发布:外文五大数据库 编辑:程序博客网 时间:2024/05/01 09:46

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

   框架: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.comemail.port=465email.from=xx@gmail.comemail.username=xx@gmail.comemail.password=xx


下面定义发送邮件的类

public class NewEmailSender implements Runnable {//get info from resource filestatic 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 recipientsInternetAddress[] 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 recipientsif (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()); }}@Overridepublic 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();


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




原创粉丝点击