2014年1月9日
#
在SoapUI的Request URL中,每次輸入的URL中含有的大寫字母會(huì)自動(dòng)轉(zhuǎn)換為小寫字母,導(dǎo)致請(qǐng)求不了 ,
這個(gè)問(wèn)題在SoapUI 5.1.2和5.2.1版本中都存在,具體的解決辦法是在HTTP TestRequest Properties的屬性中,在Endpoint中輸入對(duì)應(yīng)的含有大寫字母的URL即可。
Java使用網(wǎng)易郵箱服務(wù)器發(fā)送郵件實(shí)例
1 下載發(fā)送 mail 需要的 jar 包
a ctivation.jar 與 mail.jar
2 創(chuàng)建 SendMail 類
3 代碼如下
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import cn.founder.common.globals.Constants;
public class SendMail {
public int send(String tfrom, String tto, String ttitle, String tcontent) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.263.net"); //自己到網(wǎng)上查找網(wǎng)易發(fā)郵件的 smtp 服務(wù)地址 你的發(fā)件郵箱如果是 163 你就查找 163 的發(fā)件服務(wù)器
props.put("mail.smtp.auth", "true");
Session s = Session.getInstance(props, null);
s.setDebug(true);
Message message = new MimeMessage(s);
try {
Address from = new InternetAddress(tfrom);
message.setFrom(from);
Address to = new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO, to);
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
message.setSubject("=?utf-8?B?"+enc.encode(ttitle.getBytes("utf-8"))+"?=");
message.setContent(tcontent, "text/html;charset=utf-8");
message.setSentDate(new Date());
message.saveChanges();
Transport transport = s.getTransport("smtp");
// 第一個(gè)參數(shù)是發(fā)件服務(wù)器 第二個(gè)是你發(fā)件的郵箱名 第三個(gè)是你發(fā)件郵箱的密碼
transport.connect("smtp.263.net", ” 發(fā)件郵箱 ” , ” 發(fā)件郵箱密碼 ” );
transport.sendMessage(message, message.getAllRecipients());
transport.close();
return 0;
} catch (Exception e) {
e.printStackTrace();
return 1;
}
}
/**
* getEmailServiceIp
* @return EmailServiceIp
*/
public static void main(String[] args) {
//第一個(gè)參數(shù) 發(fā)件郵箱 第二個(gè)收件郵箱 第三個(gè) 郵件內(nèi)容
new SendMail().send("yunlong090614@163.com", "1063342004@qq.com", "更改密碼校驗(yàn) ", " 尊敬的用戶你好,您的校驗(yàn)碼為: 65432</br>xxxx");
}
<%@ taglib prefix="fmt" uri="
http://java.sun.com/jsp/jstl/fmt"% >
<jsp:useBean id="now" class="java.util.Date" />
<c:set var="currentday">
<fmt:formatDate value="${now}" type="both" dateStyle="long" pattern="yyyy-MM-dd" var="nowdate"/>
</c:set>
${nowdate} > ${result.openEndTimeOpen }=${nowdate > result.openEndTimeOpen}
安裝32位的Oracle客戶端( instantclient-basic-win32-11.2.0.1.0)。Win7 64位系統(tǒng)暫無(wú)PLSQLDeveloper,所以下一個(gè)32位的。
下載instantclient-basic-win32-11.2.0.1.0.zip (一定得是32位的,不要下錯(cuò)了版本,Oracle官網(wǎng)有下載),將其解壓至Oracle安裝目錄的Product下(本機(jī)命名為:instantclient_11_2):D:\Oracle\app\Dell\product\instantclient_11_2
拷貝數(shù)據(jù)庫(kù)安裝根目錄下的一個(gè)文件夾:D:\Oracle\app\Dell\product\11.2.0\dbhome_1
\NETWORK到Oracle客戶端目錄下D:\Oracle\app\Dell\product\instantclient_11_2(其實(shí)只需要 NETWORK\ADMIN\tnsnames.ora)
修改oracle客戶端tnsnames.ora文件(目錄在D:\Oracle\app\Dell\product\instantclient_11_2\NETWORK\ADMIN\tnsnames.ora) MYACCP= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp)(HOST=superich-accp )(PORT=1521)) ) (CONNECT_DATA=(SERVICE_NAME = ACCP) ) )
SELECT createDate,shortName,collNum,fullName FROM college
ORDER BY CONVERT( shortName USING gbk)
近幾日打印東西都是不成功,顯示不能發(fā)現(xiàn)打印機(jī),處理方法如下: 啟動(dòng) print spooler服務(wù) 但是報(bào)1068錯(cuò)誤, 在運(yùn)行中輸入“sc config spooler depend= rpcss”,確定后,我再去啟用Print Spooler服務(wù),居然成功了。我也不知道這是個(gè)什么命令,但是問(wèn)題解決了,就要謝謝網(wǎng)絡(luò)上的高手們!
Java中的三元運(yùn)算符為:條件?條件為true值:條件為false的值 EL也有一樣的運(yùn)算符,用EL的三元運(yùn)算符有時(shí)可以代替c:choose標(biāo)簽,為我們的工作省下很大力氣。
比如gender為0顯示男,其余顯示女,我們可以這么寫:
<c:choose> <c:when test= "${gender eq 0}" > 男</c:when> <c:otherwise> 女</c:otherwise> </c:choose>
但是不是顯得太麻煩了?其實(shí)我們這里就可以使用EL表達(dá)式中的三元運(yùn)算符了,上面可以簡(jiǎn)化為:
${gender eq 0?"男":"女"}
這樣是不是簡(jiǎn)練了很多?在JSTL和EL處理非A即B的時(shí)候,三元運(yùn)算符簡(jiǎn)單了許多。
轉(zhuǎn)載請(qǐng)注明:觀測(cè)者 » JSP中EL表達(dá)式三元運(yùn)算符的使用
jar -cvf safety.war * 打 war包命令
摘要: 引用地址http://www.cnblogs.com/xdp-gacl/p/3467245.html
用Jquery控制文本框只能輸入數(shù)字和字母
在公司開發(fā)WinForm項(xiàng)目時(shí),發(fā)現(xiàn)公司自主研發(fā)的textbox控件非常強(qiáng)大,可以實(shí)現(xiàn)"只能輸入數(shù)字"、"只能輸入字母"和"只能輸入數(shù)字和字母"的三種輸入限制,這樣就可以精確控制用戶輸入的內(nèi)容范圍,讓"用戶永遠(yuǎn)沒(méi)有辦法輸入...
閱讀全文
SVN更新失敗,提示locked
瀏覽:3571 | 更新:2013-10-23 11:03
打開eclipse彈出Error:could not open D:\java\lib\i386\jvm.cfg' 運(yùn)行中 輸入regedit 沒(méi)有修改注冊(cè)表,解決辦法是: 重新安裝JDK時(shí)注冊(cè)表中\(zhòng)HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environemt\1.6 項(xiàng)目下的JavaHome和RuntimeLib設(shè)置沒(méi)有更新,將這兩個(gè)項(xiàng)目更正即可.
分類: Java 2012-07-23 09:46 1431人閱讀 收藏 舉報(bào)
最近在eclipse中開發(fā)android項(xiàng)目,用到了jquery mobile框架,則會(huì)涉及到新建html文件,發(fā)現(xiàn)eclipse不自帶新建html文件的插件,必須得新建一個(gè)其他形式的文件,譬如xml格式的文件,然后重命名,后綴名改成html,覺(jué)得這樣老麻煩的,所以在網(wǎng)上發(fā)現(xiàn)了Eclipse HTML Editor,不過(guò)此插件似乎只支持新建html文件,不支持其格式化。網(wǎng)上看了其他一個(gè)html格式化的插件Eclipse Tidy,不過(guò)用了后,發(fā)現(xiàn)格式化后的html一點(diǎn)都不符合代碼審讀標(biāo)準(zhǔn)。也不知道是不是自己哪邊沒(méi)設(shè)置好,還是本來(lái)就是那樣。
現(xiàn)在就暫先不管Eclipse Tidy了,看看如何安裝Eclipse HTML Editor。
1.下載GEF(依賴包):
http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/3.7.2/R201201171043/GEF-ALL-3.7.2.zip
然后解壓,把解壓得到的features和plugins兩文件夾放到eclipse安裝目錄下plugins文件夾中
2.下載HTMLEditor
http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=EclipseHTMLEditor
只有一個(gè)tk.eclipse.plugin.htmleditor_2.1.0.jar文件
直接復(fù)制到eclipse\plugins里面
摘要: 基本資料:mysql> select version();+-----------+| version() |+-----------+| 5.0.16 |+-----------+ mysql> select * from t1;+----+------+| id | name |+----+------+| 1 | aa || 2 | bb || 3 | cc |+---...
閱讀全文
前言:之前做的ListView實(shí)現(xiàn)RadioButton的功能有bug,當(dāng)ListView控件的內(nèi)容超出屏幕可見(jiàn)區(qū)域時(shí),滑動(dòng)ListView控件會(huì)報(bào)錯(cuò),下面有為什么出錯(cuò)和解決方法進(jìn)行的注解,不多說(shuō)了,看源碼,有更好的解決辦法請(qǐng)指教
1,MainActivity.java
package com.excetop.listradio; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.RadioButton; import android.widget.CompoundButton.OnCheckedChangeListener; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private ListView listView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) this.findViewById(R.id.list); MyAdapter adapter = new MyAdapter(); listView.setAdapter(adapter); } private class MyAdapter extends BaseAdapter{ private String[] s = new String[]{"a","b","c","d","e","a","b","c","d","e","a","b","c","d","e","a","b","c","d","e"}; private int temp = -1; @Override public int getCount() { // TODO Auto-generated method stub return s.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null); //解決辦法: 每次都重新獲取View Button button = (Button) convertView.findViewById(R.id.button); button.setText(s[position]); RadioButton radioButton = (RadioButton) convertView.findViewById(R.id.radioButton); radioButton.setId(position); //把position設(shè)為radioButton的id radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ //這段代碼來(lái)實(shí)現(xiàn)單選功能 if(temp != -1){ RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp); if(tempButton != null){ tempButton.setChecked(false); } } temp = buttonView.getId(); Log.i(TAG,"you are women- - " + isChecked + " " + temp); } } }); //這里實(shí)現(xiàn)單選框選的回顯,解決了單選框移出屏幕范圍未選中狀態(tài) if(temp == position){ radioButton.setChecked(true); } return convertView; } // Holder holder; // if(convertView == null){ //1,當(dāng)?shù)谝淮渭虞dListView控件時(shí) convertView為空 // convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null); //所以當(dāng)ListView控件沒(méi)有滑動(dòng)時(shí)都會(huì)執(zhí)行這條語(yǔ)句 // holder = new Holder(); // convertView.setTag(holder); // }else{ // holder = (Holder) convertView.getTag(); // } // // holder.button = (Button) convertView.findViewById(R.id.button); // holder.button.setText(s[position]); // // holder.radioButton = (RadioButton) convertView.findViewById(R.id.radioButton); // // holder.radioButton.setId(position); //2,因?yàn)檫@里對(duì)radioButton的id進(jìn)行重新設(shè)置,滑動(dòng)ListView時(shí)convertView不為空,上面的語(yǔ)句就沒(méi)法得到radioButton對(duì)象,這條語(yǔ)句就會(huì)報(bào)空指針異常 // holder.radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { // // @Override // public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // // if(isChecked){ // if(temp != -1){ // RadioButton tempButton = (RadioButton) MainActivity.this.findViewById(temp); // tempButton.setChecked(false); // // } // // temp = buttonView.getId(); // Log.i(TAG,"you are women- - " + isChecked + " " + temp); // // } // } // }); // return convertView; // } // private class Holder{ // private Button button; // private RadioButton radioButton; // } } }
2,item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測(cè)試"> </Button> <RadioButton android:id="@+id/radioButton" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 3, main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
一,Layout
1,main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
2,item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測(cè)試"> </Button> <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
二,Activity
1,MainActivity
package com.excetop.listradio;
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.Toast; import android.widget.CompoundButton.OnCheckedChangeListener;
public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private ListView listView; private Map checkMap; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) this.findViewById(R.id.list); checkMap = new HashMap<String, Object>(); MyAdapter adapter = new MyAdapter(); listView.setAdapter(adapter); } private class MyAdapter extends BaseAdapter{ private String[] s = new String[]{"a","b","c","d","e","a","b","c","d","e","a","b","c","d","e","a","b","c","d","e"};
@Override public int getCount() { // TODO Auto-generated method stub return s.length; }
@Override public Object getItem(int position) { // TODO Auto-generated method stub return null; }
@Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; }
@Override public View getView(int position, View convertView, ViewGroup parent) { convertView = MainActivity.this.getLayoutInflater().inflate(R.layout.item, null); //解決辦法: 每次都重新獲取View Button button = (Button) convertView.findViewById(R.id.button); button.setText(s[position]); final CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.checkBox); checkBox.setId(position); //把position設(shè)為radioButton的id checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ checkMap.put(String.valueOf(checkBox.getId()), checkBox.getId()); // Toast.makeText(MainActivity.this, String.valueOf( checkBox.getId()), 0).show(); }else{ checkMap.remove(String.valueOf(checkBox.getId())); // Toast.makeText(MainActivity.this, String.valueOf( checkBox.getId()), 0).show(); } } }); if(checkMap.get(String.valueOf(position)) != null){ checkBox.setChecked(true); // Toast.makeText(MainActivity.this, String.valueOf(String.valueOf(position)), 0).show(); } //這里實(shí)現(xiàn)單選框選的回顯,解決了單選框移出屏幕范圍未選中狀態(tài) return convertView; } } }
處理多個(gè)fragment之間replace刷新問(wèn)題[轉(zhuǎn)]
每次創(chuàng)建fragment對(duì)象都會(huì)重新走onCreateView方法,所以多個(gè)fragment互相替換會(huì)重新刷新界面, 在application中創(chuàng)建一個(gè)View,保持onCreateVIew中創(chuàng)建的View 每次走onCreateView的時(shí)候判斷application中是否保持了View,如果為null,重新inflater走initView和initData方法,不為nul得到父類,移除子View,不然有父id無(wú)法再加入布局中, 以下是代碼: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { GalaxyApplication galaxyApplication = (GalaxyApplication) getActivity().getApplication(); View recommendView = galaxyApplication.getRecommendView(); if(recommendView != null){ ViewGroup group = (ViewGroup) recommendView.getParent(); group.removeAllViews(); return recommendView; } View fmRootView = inflater.inflate(R.layout.fragment_recommend, container,false); initView(fmRootView); initData(); galaxyApplication.setRecommendView(fmRootView); Logger.d("fragment: ", "onCreateView"); return fmRootView; } 如有好的方法,處理onCreateView刷新問(wèn)題 歡迎留言。
創(chuàng)建重復(fù)的背景圖片
在drawable目錄下創(chuàng)建一個(gè)repeat_bg.xml: src是引用圖片的名稱
1
2
3
4
5
6
7
8
1
<?xml version=
"1.0"
encoding=
"utf-8"
?>
2
3
android:src=
"@drawable/bg"
4
android:tileMode=
"repeat"
/>
然后在布局的xml文件中可以這樣引用:
1
2
3
4
5
6
7
8
1
<LinearLayout android:layout_width=
"fill_parent"
2
android:layout_height=
"fill_parent"
3
android:background=
"@drawable/repeat_bg"
>
4
</LinearLayout>
通常情況下,SQL Server里面的生成SQL腳本,只會(huì)包含數(shù)據(jù)庫(kù)及表的字段結(jié)構(gòu),而不會(huì)包含表的數(shù)據(jù),也就是SQL腳本里面只有Create database,Create table 這樣的語(yǔ)句,沒(méi)有insert into。
因?yàn)镾QL Server并不包含這個(gè)功能,只能靠第三方的代碼了。
以下存儲(chǔ)過(guò)程可以實(shí)現(xiàn):
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判斷對(duì)象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判斷不嚴(yán)密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對(duì)象是否是table
begin
print 'The object is not table'
return
end
select @ident=status&0x80 from syscolumns where
id=@objectid and status&0x80=0x80
if @ident is not null
print 'SET IDENTITY_INSERT
'+@TableName+' ON'
declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where
c.id=@objectid order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需處理,image,text,ntext,sql_variant 暫時(shí)不處理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end
+case when @xtype in(167,175) then
'''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then
'''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor
set @sql='set nocount on select ''insert
'+@tablename+'('+@column+' ) values(''as ''--'','+@columndata+','')'' from
'+@tablename print
'--'+@sql exec(@sql)
if @ident is not null
print 'SET IDENTITY_INSERT
'+@TableName+' OFF'
GO
使用方法:
exec UspOutputData 你的表名
選擇【執(zhí)行模式】為“以文本顯示結(jié)果”,然后將運(yùn)行后的結(jié)果存成.sql,加上用SQL Server生成的數(shù)據(jù)庫(kù)腳本就可以了。
另外可以利用第三方工具,導(dǎo)出數(shù)據(jù)可以用powerbuilder。在database painter里面,用SQL選出,或者直接打開表,點(diǎn)擊生成的list datawindow,然后在菜單file->save rows as->選擇SQL,那么生成的SQL語(yǔ)句就包括建表和insert數(shù)據(jù)的SQL了。
轉(zhuǎn)載:
http://blog.sina.com.cn/s/blog_49b531af0100i74v.html