亚洲国产精品线观看不卡,亚洲色大成网站www久久九,亚洲一卡2卡三卡4卡无卡下载 http://www.tkk7.com/iamlibo/zh-cnFri, 09 May 2025 18:15:19 GMTFri, 09 May 2025 18:15:19 GMT60Spring 3.2 JPA2.0 XML 配置方式http://www.tkk7.com/iamlibo/archive/2013/12/19/407775.htmlLiboLiboThu, 19 Dec 2013 08:17:00 GMThttp://www.tkk7.com/iamlibo/archive/2013/12/19/407775.htmlhttp://www.tkk7.com/iamlibo/comments/407775.htmlhttp://www.tkk7.com/iamlibo/archive/2013/12/19/407775.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/407775.htmlhttp://www.tkk7.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實現(xiàn)類如下:
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 實現(xiàn)類:
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);
    }
}
實體類:
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>

測試類:
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);
    }
}

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

end.


Libo 2013-12-19 16:17 發(fā)表評論
]]>
Spring 自動任務(wù)執(zhí)行CMD 命令http://www.tkk7.com/iamlibo/archive/2013/12/18/407742.htmlLiboLiboWed, 18 Dec 2013 08:35:00 GMThttp://www.tkk7.com/iamlibo/archive/2013/12/18/407742.htmlhttp://www.tkk7.com/iamlibo/comments/407742.htmlhttp://www.tkk7.com/iamlibo/archive/2013/12/18/407742.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/407742.htmlhttp://www.tkk7.com/iamlibo/services/trackbacks/407742.htmlpom.xml文件中依賴的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>

定義一個接口,寫一個實現(xiàn)類。
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());
    }

}

測試類(注意:使用junit是不能測試自動任務(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("請等待5秒讓任務(wù)飛一會兒!");
    }
}

end.

Libo 2013-12-18 16:35 發(fā)表評論
]]>
Spring mvc 返回JSON 在IE 下提示下載 解決辦法http://www.tkk7.com/iamlibo/archive/2013/11/21/406646.htmlLiboLiboThu, 21 Nov 2013 11:30:00 GMThttp://www.tkk7.com/iamlibo/archive/2013/11/21/406646.htmlhttp://www.tkk7.com/iamlibo/comments/406646.htmlhttp://www.tkk7.com/iamlibo/archive/2013/11/21/406646.html#Feedback1http://www.tkk7.com/iamlibo/comments/commentRss/406646.htmlhttp://www.tkk7.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 錯誤,將方法注釋中的 將produces 的值改為application/json;charset=utf-8
或去掉即可以正常訪問。


Libo 2013-11-21 19:30 發(fā)表評論
]]>
bat設(shè)置環(huán)境變量 啟動mysql非安裝版服務(wù) 啟動tomcat(轉(zhuǎn))http://www.tkk7.com/iamlibo/archive/2013/11/13/406308.htmlLiboLiboWed, 13 Nov 2013 11:04:00 GMThttp://www.tkk7.com/iamlibo/archive/2013/11/13/406308.htmlhttp://www.tkk7.com/iamlibo/comments/406308.htmlhttp://www.tkk7.com/iamlibo/archive/2013/11/13/406308.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/406308.htmlhttp://www.tkk7.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 

Libo 2013-11-13 19:04 發(fā)表評論
]]>
JSF2 傳參太爽了http://www.tkk7.com/iamlibo/archive/2012/07/13/383050.htmlLiboLiboFri, 13 Jul 2012 11:42:00 GMThttp://www.tkk7.com/iamlibo/archive/2012/07/13/383050.htmlhttp://www.tkk7.com/iamlibo/comments/383050.htmlhttp://www.tkk7.com/iamlibo/archive/2012/07/13/383050.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/383050.htmlhttp://www.tkk7.com/iamlibo/services/trackbacks/383050.html閱讀全文

Libo 2012-07-13 19:42 發(fā)表評論
]]>
Freemarker 開發(fā)組件—— title 組件http://www.tkk7.com/iamlibo/archive/2012/07/06/382338.htmlLiboLiboFri, 06 Jul 2012 02:19:00 GMThttp://www.tkk7.com/iamlibo/archive/2012/07/06/382338.htmlhttp://www.tkk7.com/iamlibo/comments/382338.htmlhttp://www.tkk7.com/iamlibo/archive/2012/07/06/382338.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/382338.htmlhttp://www.tkk7.com/iamlibo/services/trackbacks/382338.htmlFreemarker 可以通過macro 來定義一個組件(或者叫指令)。然后在需要的地方引用。

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

這樣就可以定義一個名為title的組件,然后通過參數(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 ,有一個參數(shù)title默認(rèn)值為"",其他的內(nèi)容就按照美工的設(shè)計寫就要可以了。

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

使用時:

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

</@formTitle>

?

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

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

</@formTitle>

看一下實際的效果圖

?

?



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

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

----------

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

? ?

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

如例:

Html代碼??

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

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

因為<anything>,/anything><anything/>是相同的,你也可以使用:<@greet/>

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

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

? ?

參數(shù)

macro指令中,宏名稱的后面位置是用來定義變量的。如例:?

Html代碼??

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

那么就可以這樣來使用這個宏:

Html代碼??

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

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

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

Html代碼??

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

那么,這個宏就可以這樣來使用:

Html代碼??

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

同時也必須給出在宏中定義所有參數(shù)的值。如果你嘗試<@greet person="Fred"/>時也會發(fā)生錯誤,因為忘記指定color的值了。?

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

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

? ?

嵌套內(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í)行位于開始和結(jié)束標(biāo)記指令之間的模板代碼段。如果這樣寫:

Html代碼??

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

那么就會輸出:

Html代碼??

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

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

Html代碼??

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

FreeMarker不會把它視為錯誤,只是打印:

Html代碼??

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

嵌套的內(nèi)容被忽略了,因為greet宏沒有使用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>??

將會輸出:

1 Anything.

2 Anything.

3 Anything.

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



Libo 2012-06-21 10:04 發(fā)表評論
]]>
怎么查詢端口被占用http://www.tkk7.com/iamlibo/archive/2012/06/20/381135.htmlLiboLiboWed, 20 Jun 2012 01:02:00 GMThttp://www.tkk7.com/iamlibo/archive/2012/06/20/381135.htmlhttp://www.tkk7.com/iamlibo/comments/381135.htmlhttp://www.tkk7.com/iamlibo/archive/2012/06/20/381135.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/381135.htmlhttp://www.tkk7.com/iamlibo/services/trackbacks/381135.html轉(zhuǎn)自http://www.cnblogs.com/xyzdw/articles/2108149.html

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

1、在windows下如何查看80端口占用情況?是被哪個進(jìn)程占用?如何終止等.
??????? 這里主要是用到windows下的DOS工具,點擊"開始"--"運行",輸入"cmd"后點擊確定按鈕,進(jìn)入DOS窗口,接下來分別運行以下命令:
??????? >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)程號為1688的程序占用.
??????? >tasklist | findstr "1688"
圖像名??????????????????????????????????????????????? PID??????????? 會話名??????????????????? 會話#?????? 內(nèi)存使用
?????????????? ========================= ====== ================ ======== ============
?????????????? inetinfo.exe??????????????????????????????????????? 1688?????????? Console????????????????????? 0????????????? 2,800 K
很明顯,是inetinfo占用了80端口;inetinfo.exe主要用于支持微軟Windows IIS網(wǎng)絡(luò)服務(wù)的除錯,這個程序?qū)δ阆到y(tǒng)的正常運行是非常重要的.
??????? 當(dāng)然,并不是只有inetinfo.exe進(jìn)程會占用80端口,這只是我機器上的情況.如果你并不了解此進(jì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ù)管理器中的映像名稱,選中它,點擊"結(jié)束進(jìn)程"即可)
??????? >tasklist | findstr "1688"
再次確認(rèn)是否成功終止,如果成功終止此次執(zhí)行命令后應(yīng)返回空.

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

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

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



Libo 2012-06-20 09:02 發(fā)表評論
]]>
Struts2 Action 與Spring bean 作用域http://www.tkk7.com/iamlibo/archive/2012/05/30/379590.htmlLiboLiboWed, 30 May 2012 13:29:00 GMThttp://www.tkk7.com/iamlibo/archive/2012/05/30/379590.htmlhttp://www.tkk7.com/iamlibo/comments/379590.htmlhttp://www.tkk7.com/iamlibo/archive/2012/05/30/379590.html#Feedback0http://www.tkk7.com/iamlibo/comments/commentRss/379590.htmlhttp://www.tkk7.com/iamlibo/services/trackbacks/379590.htmlstruts2 action 是沒有scope的,但通過引用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作用域(因為一些特殊操作傳參等),但所有action都放到session會頭大的!!

?

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

?

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

?

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

?

?

歡迎提出各種看法!

?

?



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

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

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

后來降級到10.3.6 版的weblogic 部署時出現(xiàn)一系列的包沖突,主要原因是weblogic 會首先加載它自己的包,這需要在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 引起的需要刪除xml-apis-1.0.b2.jar 這個jar包才可以。

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

因為程序中有很多命名查詢,所以也沒有刪除,最終只好暫時放棄使用weblogic了。

?



Libo 2012-05-30 15:10 發(fā)表評論
]]>
主站蜘蛛池模板: 亚洲AV无码成人精品区天堂 | 久青草国产免费观看| 免费理论片51人人看电影| 中文字幕无码精品亚洲资源网久久 | 亚洲AV无码专区在线观看成人| 噼里啪啦电影在线观看免费高清| 中文字幕亚洲综合久久| 2021在线永久免费视频| 亚洲一卡2卡3卡4卡国产网站| 国产v精品成人免费视频400条| 亚洲欧洲日本在线观看| 色妞WWW精品免费视频| 亚洲av无码专区在线电影| 四虎永久精品免费观看| a毛片成人免费全部播放| 国产亚洲精品一品区99热| 香蕉成人免费看片视频app下载| 亚洲国产精品婷婷久久| 中文毛片无遮挡高潮免费| 亚洲人成色在线观看| 免费一级国产生活片| 中文字幕视频免费在线观看| 亚洲精品成人av在线| 又黄又爽又成人免费视频| 精品亚洲国产成人av| 亚洲男人的天堂www| 国产精品永久免费10000| 亚洲精品人成网线在线播放va| mm1313亚洲精品国产| 久久美女网站免费| 亚洲狠狠成人综合网| 亚洲第一成人影院| 色欲国产麻豆一精品一AV一免费| 2019亚洲午夜无码天堂| 亚洲 小说区 图片区 都市| 日本免费久久久久久久网站| 456亚洲人成在线播放网站| 亚洲乱亚洲乱少妇无码| 91热久久免费精品99| 精品在线免费视频| 亚洲视频在线播放|