性高爱久久久久久久久,国产精品网站大全,国产免费一区二区三区在线观看http://www.aygfsteel.com/iamlibo/zh-cnSun, 18 May 2025 14:42:40 GMTSun, 18 May 2025 14:42:40 GMT60Spring 3.2 JPA2.0 XML 配置方式http://www.aygfsteel.com/iamlibo/archive/2013/12/19/407775.htmlLiboLiboThu, 19 Dec 2013 08:17:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2013/12/19/407775.htmlhttp://www.aygfsteel.com/iamlibo/comments/407775.htmlhttp://www.aygfsteel.com/iamlibo/archive/2013/12/19/407775.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/407775.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/407775.html使用maven工程,pom.xml文件如下
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.5</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.2.8.Final</version>
        </dependency>

        <!-- for JPA, use hibernate-entitymanager instead of hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.2.8.Final</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.27</version>
        </dependency>
       <!-- <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.0</version>
        </dependency>
-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.2.4.RELEASE</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

dao接口如下:
package cn.test.dao;

/**
 * Created by libo on 13-12-19.
 
*/
public interface IDao {

    void save(Object entity);
}

dao實(shí)現(xiàn)類(lèi)如下:
package cn.test.dao;

import org.springframework.stereotype.Component;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 * Created by libo on 13-12-19.
 
*/
@Component
public class DaoJpaImpl implements IDao {

    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public void save(Object entity) {
        entityManager.persist(entity);
    }
}

service 接口:
package cn.test.service;

import cn.test.entity.User;

/**
 * Created by libo on 13-12-19.
 
*/
public interface UserService {
    void save(User user);
}

service 實(shí)現(xiàn)類(lèi):
package cn.test.service;

import cn.test.dao.IDao;
import cn.test.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * Created by libo on 13-12-19.
 
*/
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private IDao iDao;

    @Override
    //@Transactional(propagation= Propagation.REQUIRED)
    @Transactional(readOnly = false)
    public void save(User user) {
        iDao.save(user);
    }
}
實(shí)體類(lèi):
package cn.test.entity;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

/**
 * Created by libo on 13-12-19.
 
*/
@Entity
@Table(name = "myUser")
public class User implements Serializable{

    @Id
    private String id;

    private String name;

    private int age;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

spring-config.xml 其中
task相關(guān)內(nèi)容可以刪除
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:tx
="http://www.springframework.org/schema/tx"
       xmlns:task
="http://www.springframework.org/schema/task"
       xmlns:context
="http://www.springframework.org/schema/context"
       xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task
            http://www.springframework.org/schema/task/spring-task-3.1.xsd http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"
>
    <context:annotation-config/>
    <context:component-scan base-package="cn.test"/>
    <task:annotation-driven/>

    <bean id="em" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="packagesToScan" value="cn.test.entity"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            </props>
        </property>
    </bean>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/spring_jpa"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="em"/>
    </bean>
    <!-- 可以使用@Transactional配置事務(wù) -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean id="persistenceExceptionTranslationPostProcessor"
          class
="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
</beans>

測(cè)試類(lèi):
package cn.test.service;

import cn.test.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * Created by libo on 13-12-19.
 
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config.xml")
public class UserServiceImplTest {

    @Autowired
    private UserService userService;

    @Test
    public void testSave() throws Exception {
        User user = new User();
        user.setId("u_id");
        user.setName("u_name");
        user.setAge(23);
        userService.save(user);
    }
}

運(yùn)行Junit測(cè)試就可以了。連接的是MySQL數(shù)據(jù)庫(kù)

end.


]]>
Spring 自動(dòng)任務(wù)執(zhí)行CMD 命令http://www.aygfsteel.com/iamlibo/archive/2013/12/18/407742.htmlLiboLiboWed, 18 Dec 2013 08:35:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2013/12/18/407742.htmlhttp://www.aygfsteel.com/iamlibo/comments/407742.htmlhttp://www.aygfsteel.com/iamlibo/archive/2013/12/18/407742.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/407742.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/407742.htmlpom.xml文件中依賴(lài)的jar:
 <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.5</version>
        </dependency>
</dependencies>
spring-config.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:task
="http://www.springframework.org/schema/task"
       xmlns:context
="http://www.springframework.org/schema/context"
       xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task
            http://www.springframework.org/schema/task/spring-task-3.1.xsd http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.1.xsd"
>
    <context:component-scan base-package="cn.test" />
    <task:annotation-driven/>
</beans>

定義一個(gè)接口,寫(xiě)一個(gè)實(shí)現(xiàn)類(lèi)。
package cn.test;

/**
 * Created by libo on 13-12-18.
 
*/
public interface SchedulerService {
    void doSome();
}
package cn.test;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.io.*;
import java.util.Calendar;

/**
 * Created by libo on 13-12-18.
 
*/
@Component
public class SchedulerServiceImpl implements SchedulerService {

    @Scheduled(cron = "0/5 * *  * * ? ")   //每5秒執(zhí)行一次
    @Override
    public void doSome() {
        System.out.println("do soming" + Calendar.getInstance().getTime());
        Runtime runtime = Runtime.getRuntime();
        Process p = null;
        FileWriter fw = null;
        try {
            //此處執(zhí)行的是ipconfig命令,可以換成任何cmd 里的命令。
            p = runtime.exec("cmd /c ipconfig /all");
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream(), "GBK"));
            // 將命令執(zhí)行結(jié)果保存到文件中
            fw = new FileWriter(new File("C:/temp/cmdout.txt"));
            String line = null;
            while ((line = reader.readLine()) != null) {
                fw.write(line + "\n");
            }
            fw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (p != null) {
                p.destroy();
            }
            try {
                if (fw != null)
                    fw.close();
                if (p != null)
                    p.getOutputStream().close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("do soming" + Calendar.getInstance().getTime());
    }

}

測(cè)試類(lèi)(注意:使用junit是不能測(cè)試自動(dòng)任務(wù)地!)
package cn.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by libo on 13-12-18.
 
*/
public class Test {

    public static void main(String[] args){
        ApplicationContext context = new ClassPathXmlApplicationContext("/spring-config.xml");
        System.out.println("請(qǐng)等待5秒讓任務(wù)飛一會(huì)兒!");
    }
}

end.

]]>
Spring mvc 返回JSON 在IE 下提示下載 解決辦法http://www.aygfsteel.com/iamlibo/archive/2013/11/21/406646.htmlLiboLiboThu, 21 Nov 2013 11:30:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2013/11/21/406646.htmlhttp://www.aygfsteel.com/iamlibo/comments/406646.htmlhttp://www.aygfsteel.com/iamlibo/archive/2013/11/21/406646.html#Feedback1http://www.aygfsteel.com/iamlibo/comments/commentRss/406646.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/406646.html解決辦法 是:
<mvc:annotation-driven ignoreDefaultModelOnRedirect="true" validator="validator">
        <mvc:message-converters register-defaults="false">
            <bean
                
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
            <bean
                
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
        </mvc:message-converters>
        
    </mvc:annotation-driven>

如果提示 http 406 錯(cuò)誤,將方法注釋中的 將produces 的值改為application/json;charset=utf-8
或去掉即可以正常訪問(wèn)。


]]>
bat設(shè)置環(huán)境變量 啟動(dòng)mysql非安裝版服務(wù) 啟動(dòng)tomcat(轉(zhuǎn))http://www.aygfsteel.com/iamlibo/archive/2013/11/13/406308.htmlLiboLiboWed, 13 Nov 2013 11:04:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2013/11/13/406308.htmlhttp://www.aygfsteel.com/iamlibo/comments/406308.htmlhttp://www.aygfsteel.com/iamlibo/archive/2013/11/13/406308.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/406308.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/406308.html@echo off 

if exist "%CATALINA_HOME%" (goto update_CATALINA_HOME) else (goto create_CATALINA_HOME) 
:create_CATALINA_HOME 
wmic ENVIRONMENT create name="CATALINA_HOME",username="<system>",VariableValue="%cd%\tomcat" 
:update_CATALINA_HOME 
wmic ENVIRONMENT set name="CATALINA_HOME",username="<system>",VariableValue="%cd%\tomcat" 

if exist "%JAVA_HOME%" (goto update_JAVA_HOME) else (goto create_JAVA_HOME) 
:create_JAVA_HOME 
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%cd%\jdk" 
:update_JAVA_HOME 
wmic ENVIRONMENT set name="JAVA_HOME",username="<system>",VariableValue="%cd%\jdk" 

if exist "%ANT_HOME%" (goto update_ANT_HOME) else (goto create_ANT_HOME) 
:create_ANT_HOME 
wmic ENVIRONMENT create name="ANT_HOME",username="<system>",VariableValue="%cd%\ant" 
:update_ANT_HOME 
wmic ENVIRONMENT set name="ANT_HOME",username="<system>",VariableValue="%cd%\ant" 

wmic ENVIRONMENT set name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib" 

@echo off 
set MYSQL_HOME=%~dp0mysql 
echo MYSQL_HOME=%MYSQL_HOME% 
del /F my.ini 
echo [client] >> my.ini 
echo port = 3306 >> my.ini 
echo default_character_set=utf-8 >> my.ini 
echo [mysqld] >> my.ini 
echo %server_default_character_set%=utf8 >> my.ini 
echo default_storage_engine=InnoDB >> my.ini 
echo basedir=%MYSQL_HOME%>>my.ini 
echo datadir=%MYSQL_HOME%data>> my.ini 
echo innodb_data_file=ibdata1:50M;ibdata2:10M:autoextend >> my.ini 
echo transaction-isolation=READ-COMMITTED >> my.ini 
echo port=%server_port% >> my.ini 
echo max_allowed_packet = 64M >> my.ini 
echo "my.ini in %MYSQL_HOME% created." 
set PATH=%MYSQL_HOME%\bin;%PATH% 
if exist "%MYSQL_HOME%\bin\mysqld-nt.exe" call %MYSQL_HOME%\bin\mysqld-nt --install-manual "mysql" --defaults-file="%MYSQL_HOME%my.ini" 
if not exist "%MYSQL_HOME%\bin\mysqld-nt.exe" call %MYSQL_HOME%\bin\mysqld --install-manual "mysql" --defaults-file="%MYSQL_HOME%\my.ini" 

net start mysql 


@echo off 

if exist "%CATALINA_HOME%" go startup 
echo Cannot find "CATALINA_HOME%" 

:startup 
call "%CATALINA_HOME%\bin\startup.bat" start 

]]>
JSF2 傳參太爽了http://www.aygfsteel.com/iamlibo/archive/2012/07/13/383050.htmlLiboLiboFri, 13 Jul 2012 11:42:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/07/13/383050.htmlhttp://www.aygfsteel.com/iamlibo/comments/383050.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/07/13/383050.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/383050.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/383050.html閱讀全文

]]>
Freemarker 開(kāi)發(fā)組件—— title 組件http://www.aygfsteel.com/iamlibo/archive/2012/07/06/382338.htmlLiboLiboFri, 06 Jul 2012 02:19:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/07/06/382338.htmlhttp://www.aygfsteel.com/iamlibo/comments/382338.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/07/06/382338.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/382338.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/382338.htmlFreemarker 可以通過(guò)macro 來(lái)定義一個(gè)組件(或者叫指令)。然后在需要的地方引用。

比如,想在每增加頁(yè)面的地方設(shè)置一下當(dāng)前頁(yè)的title,類(lèi)似于這樣:

這樣就可以定義一個(gè)名為title的組件,然后通過(guò)參數(shù)傳入標(biāo)題。

Formtitle.ftl代碼:

<#--表單標(biāo)題 -->

<#macro formTitle title="">

<script type="text/javascript" src="platform/js/jquery.corner.js"></script>

<div id="toolbar" class="page_title">

<div id="page_title"style="float:left; margin-top:3px; margin-left:5px;">

<img src="platform/images/ico.png" />${title}</div>

<div align="right" id="btns" style="padding-right:10px">

<#nested/>

</div>

</div>

<div class="clear"/>

<script language="javascript">

$('#page_title').corner("5px");

</script>

</#macro>

其中 <#macro formTitle title=""> 表示定義該組件名為 formTitle ,有一個(gè)參數(shù)title默認(rèn)值為"",其他的內(nèi)容就按照美工的設(shè)計(jì)寫(xiě)就要可以了。

<#nested/> 表示可以嵌入代碼,即可以在使用時(shí)嵌入其他的內(nèi)容。

使用時(shí):

<@formTitle title="用戶增加">

</@formTitle>

?

<@formTitle title="用戶增加">

????這里是嵌入的內(nèi)容,可以是HTML,也可以是freemarker 的內(nèi)容。

</@formTitle>

看一下實(shí)際的效果圖

?

?



]]>
freemarker之模板開(kāi)發(fā)(其它之自定義指令)http://www.aygfsteel.com/iamlibo/archive/2012/06/21/381240.htmlLiboLiboThu, 21 Jun 2012 02:04:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/06/21/381240.htmlhttp://www.aygfsteel.com/iamlibo/comments/381240.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/06/21/381240.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/381240.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/381240.html轉(zhuǎn)自:http://fhd001.iteye.com/blog/1167764

freemarker之模板開(kāi)發(fā)(其它之自定義指令)

----------

自定義指令可以使用macro指令來(lái)定義,這是模板設(shè)計(jì)者所關(guān)心的內(nèi)容。Java程序員若不想在模板中實(shí)現(xiàn)自定義指令,而是在java語(yǔ)言中實(shí)現(xiàn)指令的定義,這時(shí)可以使用:freemarker.template.TemplateDirectiveModel類(lèi)來(lái)擴(kuò)展。

? ?

宏是有一個(gè)變量名的模板片段。你可以在模板中使用宏作為自定義指令,這樣就能進(jìn)行重復(fù)性的工作。

如例:

Html代碼??

  1. <#macro?greet>??
  2. ????<font?size="+2">Hello?Joe!</font>??
  3. </#macro>??

macro指令自身不打印任何內(nèi)容,它只是用來(lái)創(chuàng)建宏變量,所以就會(huì)有一個(gè)名為greet的變量,<#macro greet></#macro>之間的內(nèi)容(稱(chēng)為宏定義體)當(dāng)使用它作為指令時(shí)將會(huì)被執(zhí)行。你可以在FTL標(biāo)記中通過(guò)@代替#來(lái)使用自定義指令。使用變量名作為指令名。而且,自定義指令的結(jié)束標(biāo)記也是需要的,如:<@greet></@greet>

因?yàn)?/span><anything>,/anything><anything/>是相同的,你也可以使用:<@greet/>

宏能做的事情還有很多,因?yàn)樵?/span><#macro...></#macro>之間的東西是模板片段,也就是說(shuō)它可以包含插值(${..})FTL標(biāo)簽(如:<#if...>...</#if>)。

注意:程序員通常將使用<@...>,這稱(chēng)為宏調(diào)用。

? ?

參數(shù)

macro指令中,宏名稱(chēng)的后面位置是用來(lái)定義變量的。如例:?

Html代碼??

  1. <#macro?greet?person>??
  2. ????<font?size="+2">Hello?${person}!</font>??
  3. </#macro>??

那么就可以這樣來(lái)使用這個(gè)宏:

Html代碼??

  1. <@greet?person="Fred"/>??

使用預(yù)定義指令時(shí),參數(shù)的值(=號(hào)后邊的值)可以是FTL表達(dá)式。這樣,不像HTML,"Fred"的引號(hào)就可以不用要了。<@greet person=Fred/>也意味著使用變量的值Fred作為person參數(shù),而不是字符串"Fred"。當(dāng)然參數(shù)值并不一定是字符串類(lèi)型,也可以是數(shù)字,布爾值,哈希表,序列等...也可以在=號(hào)左邊使用復(fù)雜表達(dá)式(比如:someParam=(price+50)*1.25)

自定義指令可以有多個(gè)參數(shù),如: ?

Html代碼??

  1. <#macro?greet?person?color>??
  2. ????<font?size="+2"?color="${color}">Hello?${persion}!</font>??
  3. </#macro>??

那么,這個(gè)宏就可以這樣來(lái)使用:

Html代碼??

  1. <@greet?person="Fred"?color="black"/>??

同時(shí)也必須給出在宏中定義所有參數(shù)的值。如果你嘗試<@greet person="Fred"/>時(shí)也會(huì)發(fā)生錯(cuò)誤,因?yàn)橥浿付?/span>color的值了。?

根據(jù)FTL表達(dá)式規(guī)則,明白下面這一點(diǎn)是至關(guān)重要的,someParam=foosomeParam="${foo}"是不同的。第一種情況,是把變量foo的值作為參數(shù)的值來(lái)使用。第二種情況則是使用插值形式的字符串,那么參數(shù)值就是字符串了,這個(gè)時(shí)候,foo的值呈現(xiàn)為文本,而不管foo是什么類(lèi)型的。

宏參數(shù)的另外一個(gè)重要的方面是它們是局部變量。

? ?

嵌套內(nèi)容

自定義指令可以嵌套內(nèi)容,和預(yù)定義指令相似。如:?

Html代碼??

  1. <#macro?border>??
  2. ????<table?border=4?cellspacing=0?cellpadding=4><tr><td>??
  3. ????????<#nested>??
  4. ????</td></tr></table>??
  5. </#macro>??

注:<#nested>指令執(zhí)行位于開(kāi)始和結(jié)束標(biāo)記指令之間的模板代碼段。如果這樣寫(xiě):

Html代碼??

  1. <@border>The?bordered?text</@border>??

那么就會(huì)輸出:

Html代碼??

  1. <table?border=4?cellspacing=0?cellpadding=4><tr><td>??
  2. ????The?bordered?text??
  3. </td></tr></table>??

如果不使用nested指令,那么嵌套的內(nèi)容就不會(huì)被執(zhí)行,前面的例子如果這樣寫(xiě):

Html代碼??

  1. <@greet?person="Joe">??
  2. ????Anything.??
  3. </@greet>??

FreeMarker不會(huì)把它視為錯(cuò)誤,只是打?。?/span>

Html代碼??

  1. <font?size="+2">Hello?Joe!</font>??

嵌套的內(nèi)容被忽略了,因?yàn)?/span>greet宏沒(méi)有使用nested指令。

? ?

宏和循環(huán)變量

list這樣的預(yù)定義指令可以使用循環(huán)變量,如例:

Html代碼??

  1. <#macro?do_thrice>??
  2. ????<#nested?1>??
  3. ????<#nested?2>??
  4. ????<#nested?3>??
  5. </#macro>??

用戶自定義指令,使用";"代替"as"

Html代碼??

  1. <@do_thrice?;?x>??
  2. ????${x}?Anything.??
  3. </@do_thrice>??

將會(huì)輸出:

1 Anything.

2 Anything.

3 Anything.

nested指令(當(dāng)然參數(shù)可以是任意的表達(dá)式)的參數(shù),循環(huán)變量的名稱(chēng)是在自定義指令的開(kāi)始標(biāo)記(<@...>)的參數(shù)后面通過(guò)分號(hào)確定的。



]]>
怎么查詢端口被占用http://www.aygfsteel.com/iamlibo/archive/2012/06/20/381135.htmlLiboLiboWed, 20 Jun 2012 01:02:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/06/20/381135.htmlhttp://www.aygfsteel.com/iamlibo/comments/381135.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/06/20/381135.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/381135.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/381135.html轉(zhuǎn)自http://www.cnblogs.com/xyzdw/articles/2108149.html

以下文章主要以80端口號(hào)為例,如果想知道其他的端口號(hào)也可以使用該方法..........................

1、在windows下如何查看80端口占用情況?是被哪個(gè)進(jìn)程占用?如何終止等.
??????? 這里主要是用到windows下的DOS工具,點(diǎn)擊"開(kāi)始"--"運(yùn)行",輸入"cmd"后點(diǎn)擊確定按鈕,進(jìn)入DOS窗口,接下來(lái)分別運(yùn)行以下命令:
??????? >netstat -aon | findstr "80"
??????????????? Proto? Local Address????????? Foreign Address??????? State??????????? PID
??????????????? ====? ============????? ==============? ==========? ======
??????????????? TCP??? 0.0.0.0:80??????????????????? 0.0.0.0:0??????????????? LISTENING????? 1688
可以看出80端口被進(jìn)程號(hào)為1688的程序占用.
??????? >tasklist | findstr "1688"
圖像名??????????????????????????????????????????????? PID??????????? 會(huì)話名??????????????????? 會(huì)話#?????? 內(nèi)存使用
?????????????? ========================= ====== ================ ======== ============
?????????????? inetinfo.exe??????????????????????????????????????? 1688?????????? Console????????????????????? 0????????????? 2,800 K
很明顯,是inetinfo占用了80端口;inetinfo.exe主要用于支持微軟Windows IIS網(wǎng)絡(luò)服務(wù)的除錯(cuò),這個(gè)程序?qū)δ阆到y(tǒng)的正常運(yùn)行是非常重要的.
??????? 當(dāng)然,并不是只有inetinfo.exe進(jìn)程會(huì)占用80端口,這只是我機(jī)器上的情況.如果你并不了解此進(jìn)程是干什么用的,千萬(wàn)不要盲目地將其kill掉,最好先百度或Google搜索一下;當(dāng)然如果你很了解它,并確定可以終止,那么繼續(xù)下面的命令.
??????? >taskkill /pid 1688 /F
成功: 已終止 PID 為 1688 的進(jìn)程。
如果你很熟悉此進(jìn)程,并確定可以終止,那么就直接使用上面的命令把PID為1688的進(jìn)程終止.(這一步同樣可以在任務(wù)管理器中執(zhí)行,inetinfo.exe就是任務(wù)管理器中的映像名稱(chēng),選中它,點(diǎn)擊"結(jié)束進(jìn)程"即可)
??????? >tasklist | findstr "1688"
再次確認(rèn)是否成功終止,如果成功終止此次執(zhí)行命令后應(yīng)返回空.

2、linux下如何查看80端口占用情況?是被哪個(gè)進(jìn)程占用?如何終止等

查詢端口是否被占用,被哪個(gè)進(jìn)程占用有兩種方式:1、netstat -anl | grep "80" ;2、lsof -i:80

終止進(jìn)程的方式:kill pid



]]>
Struts2 Action 與Spring bean 作用域http://www.aygfsteel.com/iamlibo/archive/2012/05/30/379590.htmlLiboLiboWed, 30 May 2012 13:29:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/05/30/379590.htmlhttp://www.aygfsteel.com/iamlibo/comments/379590.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/05/30/379590.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/379590.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/379590.htmlstruts2 action 是沒(méi)有scope的,但通過(guò)引用spring bean 可以達(dá)到有scope功能。

?

?

<action name="xxxAction" class="xxxBean">

<result name="success" >/success.jsp</result>

</action>

?

?xxxBean是在spring中配置的session作用域的bean.

?

@Service(value = "xxxBean")

@Scope(value = "session")

public class XxxAction {

...

}

? ?

?

想把action放到session作用域(因?yàn)橐恍┨厥獠僮鱾鲄⒌?/span>),但所有action都放到session會(huì)頭大的??!

?

經(jīng)過(guò)測(cè)試發(fā)現(xiàn)一個(gè)辦法,就是把不用的xxxAction在適當(dāng)?shù)臅r(shí)候從session當(dāng)中清除掉,這樣再下次使用(沒(méi)有關(guān)閉窗口的情況)的時(shí)候會(huì)再次創(chuàng)建xxxBean

?

現(xiàn)在的難點(diǎn)在于什么時(shí)候清除比較合適,一般一個(gè)action都是負(fù)責(zé)一個(gè)功能,比如用戶的增、刪、改查等,不會(huì)涉及到其他對(duì)象,采購(gòu)單的增、刪、改、查。這樣就可以在通過(guò)菜單切換功能(從用戶界面切到采購(gòu)單界面)的時(shí)候?qū)倓偸褂玫挠脩舻?/span>actionsession當(dāng)中清除。

?

基于這樣的思路,使用struts2 的攔截器(Interceptor)來(lái)監(jiān)聽(tīng)特定的action,在菜單切換的時(shí)候從session中清除不用的action。

?

?

歡迎提出各種看法!

?

?



]]>
Weblogic 部署程序艱難過(guò)程http://www.aygfsteel.com/iamlibo/archive/2012/05/30/379558.htmlLiboLiboWed, 30 May 2012 07:10:00 GMThttp://www.aygfsteel.com/iamlibo/archive/2012/05/30/379558.htmlhttp://www.aygfsteel.com/iamlibo/comments/379558.htmlhttp://www.aygfsteel.com/iamlibo/archive/2012/05/30/379558.html#Feedback0http://www.aygfsteel.com/iamlibo/comments/commentRss/379558.htmlhttp://www.aygfsteel.com/iamlibo/services/trackbacks/379558.html首先說(shuō)明最后部署是不成功的,但中間發(fā)現(xiàn)并解決了一些問(wèn)題做一下記錄。

最近需要把tomcat下的項(xiàng)目部署到weblogic中,版本在10和12c之間選擇了。

首先來(lái)說(shuō)12c 版本,主要是sfl4j 這個(gè)包中有一個(gè)錯(cuò)誤,找不到方法,項(xiàng)目中使用的版本是1.5.8 而weblogic 12c 使用的是 1.6.X log 方法多了一個(gè)數(shù)組類(lèi)型的參數(shù)。

后來(lái)降級(jí)到10.3.6 版的weblogic 部署時(shí)出現(xiàn)一系列的包沖突,主要原因是weblogic 會(huì)首先加載它自己的包,這需要在weblogic.xml中加入

<wls:container-descriptor>

????<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>

</wls:container-descriptor>

?

這樣的代碼就可以了,但又出現(xiàn)

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-config.xml]; nested exception is java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory

….

Caused By: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory

….

查了好多解決辦法,主要原因是weblogic 的jar 包與程序中的jar包沖突,prefer-web-inf-classes設(shè)置為true 引起的需要?jiǎng)h除xml-apis-1.0.b2.jar 這個(gè)jar包才可以。

但刪除這個(gè)jar包后,又不能解析hibernate Queries ,看網(wǎng)上的解決辦法是不使用命名查詢。

因?yàn)槌绦蛑杏泻芏嗝樵?,所以也沒(méi)有刪除,最終只好暫時(shí)放棄使用weblogic了。

?



]]>
主站蜘蛛池模板: 阳江市| 甘南县| 汉源县| 新巴尔虎右旗| 岐山县| 淮滨县| 施甸县| 东城区| 丹阳市| 洞口县| 凤山县| 镇原县| 鹤庆县| 汉源县| 宁化县| 五大连池市| 开化县| 云林县| 桐梓县| 扬中市| 噶尔县| 将乐县| 禄丰县| 台前县| 娱乐| 盘山县| 合江县| 逊克县| 富顺县| 鄂托克前旗| 南江县| 南开区| 新蔡县| 晋宁县| 尼勒克县| 和林格尔县| 灌南县| 平度市| 成武县| 东阿县| 吕梁市|