Jsp分页实例

Posted on

Jsp分页实例

回首页

Java中文网址大全学习笔记java文摘源码下载Java实例Java教学J2me学习留言板 站内资源搜索: ┆ 将本文寄给朋友 Jsp分页实例

下载源代码

〖 作者:wangxiaoyi2 〗〖 大小:1M 〗〖 发布日期:2010-03-15 〗〖 浏览:0 〗 效果图:

1)数据库操作类,做简单封装 DB.java

package Test;

import java.sql./*;

public class DB {

// 加载驱动 static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("驱动加载出错"); } }

// 获取数据库连接

public static Connection getConn() { Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost/userinfo?user=root&password=abcd"); } catch (SQLException e) { e.printStackTrace(); } return conn; } // 关闭数据库连接 public static void closeConn(Connection conn) { try { if(conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } // 关闭Statement public static void closeStmt(Statement stmt) { try { if(stmt != null) { stmt.close(); stmt = null; } } catch (SQLException e) { e.printStackTrace(); } } // 关闭ResultSet public static void closeRs(ResultSet rs) { try { if(rs != null) { rs.close(); rs = null; } } catch (SQLException e) { e.printStackTrace(); } } } ///////////////////////////////////////////////////////*

2)初始化数据类 initData.java

package Test;

import java.sql./*;

public class initData {

private static Connection conn = null;

private static PreparedStatement pstmt = null;

private static Statement stmt = null;

private static String sql = "insert into userinfo(id,username,age) values(?,?,?)"; // 总条数 private static int allCount = 10000; // 分批条数 private static int preCount = 1000; // 计数器 private static int count = 0;

public static void main(String[] args) { CleanData();// 清除数据 InsertData();// 插入数据 }

/// / DDL语句 建表语句 / create table userinfo ( id int(20) not null, username / varchar(255), age varchar(255), primary key (id) ) //

/// / 插入数据 用addBatch()方法 / 当数据量达到1000时 提交一次 // private static void InsertData() { try { conn = DB.getConn(); pstmt = conn.prepareStatement(sql); conn.setAutoCommit(false); long start = System.currentTimeMillis(); for (int i = 1; i <= allCount; i++) { pstmt.setInt(1, i); pstmt.setString(2, "java" + i); pstmt.setString(3, "20"); pstmt.addBatch(); if ((i % preCount) == 0) { pstmt.executeBatch(); System.out.println("当前进行完毕===>" + (++count) / preCount

   + "条");
}

} long end = System.currentTimeMillis(); System.out.println("数据插入成功!所用时间为: " + (end - start) + " ms"); } catch (Exception e) { e.printStackTrace(); try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } System.out.println("数据出错,已进行回滚"); } finally { try { conn.commit();//提交数据 } catch (SQLException e) { e.printStackTrace(); } DB.closeStmt(pstmt); DB.closeConn(conn); } } /// / 清除数据 // private static void CleanData() { try { conn = DB.getConn(); String sql = "delete from userinfo"; stmt = conn.createStatement(); stmt.executeUpdate(sql); System.out.println(sql); System.out.println("清除数据成功!"); } catch (SQLException e) { e.printStackTrace(); } finally { DB.closeStmt(stmt); DB.closeConn(conn); } } } /////////////////////////////////////////////////////*

3)分页核心类 Pager.java

package Test;

import javax.servlet.http./*;

public class Pager { private int totalRows; // 总行数 private int pageSize = 20; // 每页显示的行数 private int currentPage = 1; // 当前页号 private int totalPages; // 总页数 private int startRow; // 当前页在数据库中的起始行

// 构造方法1 private Pager() { }

// 构造方法2 带参数_totalRows private Pager(int _totalRows) { totalRows = _totalRows; totalPages = totalRows / pageSize; int mod = totalRows % pageSize; if (mod > 0) { totalPages++; } currentPage = 1; startRow = 0; }

// 设置当前页在数据库中的起始行 public void setStartRow(int startRow) { this.startRow = startRow; } // 获取当前页在数据库中的起始行 public int getStartRow() { return startRow; } // 设置总页数 public void setTotalPages() { totalPages = totalRows / pageSize; int mod = totalRows % pageSize; if (mod > 0) { totalPages++; } } // 获取总页数 public int getTotalPages() { return totalPages; } // 设置当前页码 public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } // 获取当前页码 public int getCurrentPage() { return currentPage; } // 设置总行数 public void setTotalRows(int totalRows) { this.totalRows = totalRows; } // 获取总行数 public int getTotalRows() { return totalRows; } // 设置每页显示行数 public void setPageSize(int pageSize) { this.pageSize = pageSize; } // 获取每页显示的行数 public int getPageSize() { return pageSize; } // 首页 public void first() { currentPage = 1; startRow = 0; } // 前一页 public void previous() { if (currentPage == 1) { return; } currentPage--; startRow = (currentPage - 1) / pageSize; } // 下一页 public void next() { if (currentPage < totalPages) { currentPage++; } startRow = (currentPage - 1) / pageSize; } // 最后一页 public void last() { currentPage = totalPages; startRow = (currentPage - 1) /* pageSize; } // 刷新页码 public void refresh(int _currentPage) { currentPage = _currentPage; if (currentPage > totalPages) { last(); } }

/// / 获得下一页的页码 如果当前页码+1大于等于最大页数, / 则下一页的页码为最大页数 否则下一页的页码为当前页码+1 /*/ public int getNext() { if (currentPage +1 >= totalPages) { return totalPages; } else { return currentPage+1 ; } }

// 获取前一页的页码 public int getPrevious() { if (currentPage - 1 <= 1) { return 1; } else { return currentPage - 1; } }

// 判断是否存在下一页 public boolean hasNext() { return currentPage < getTotalPages(); }

// 判断是否存在上一页 public boolean hasPrevious() { return currentPage > 1; }

// 判断是否是第一页 public boolean isFirst() { return currentPage == 1; }

// 判断是否是最后一页 public boolean isLast() { return currentPage == getTotalPages(); }

/// / 产生js代码 / / @param url / @return /*/ public static String getJavascript(String url) { StringBuffer sb = new StringBuffer(); sb.append("function goPage(pageNumber)\r\n"); sb.append("{\r\n"); sb.append(" window.self.location='" + url

+ "?pageNumber='+pageNumber+'&pageSize='+pageSize.value+'';\r\n");

sb.append("}\r\n"); return sb.toString();

}

/// / 产生html代码 / @param total / @return // public String getNavigate(){

setTotalPages();

StringBuffer buf = new StringBuffer();

buf.append("共"+ totalRows+ "条记录 "+ pageSize+ "条/页  "); buf.append("第"+ currentPage+ "页/共"+ totalPages+ "页  ");

// 判断 "首页" 链接是否显示 if(isFirst()){ buf.append("[首页] "); } else{ buf.append("[首页] "); }

// 判断 "上一页" 链接是否显示 if (hasPrevious()) { buf.append("[<a href='javascript:goPage(" + getPrevious()

 + ")' target='_self'>上一页</a>]&nbsp;");

} else { buf.append(" [上一页] "); }

// 判断 "下一页" 链接是否显示 if (hasNext()) { buf.append("[<a href='javascript:goPage(" + getNext()

 + ")' target='_self'>下一页</a>]&nbsp;");

} else { buf.append("[下一页] "); }

// 判断 "尾页" 链接是否显示 if(isLast()){ buf.append("[尾页] 转到"); } else{ buf.append("[<a href='javascript:goPage(" + totalPages

+ ")' target='_self'>尾页</a>]&nbsp;转到");

}

// 转到第几页选择框 // 用onchange方法轻松搞定转向 buf.append("<select name=select' onchange='javascript:goPage(this.options[this.selectedIndex].value)'>");

for (int x = 1; x <= getTotalPages(); x++) { buf.append(""); } buf.append(""); buf.append("每页"); buf.append("  ");

return buf.toString(); }

public static Pager getInstance(HttpServletRequest request,int total){ Pager cPager = new Pager(); String pNum = request.getParameter("pageNumber"); if (pNum == null||pNum == "") pNum = "1"; int intpNum = Integer.parseInt(pNum);

String pSize = request.getParameter("pageSize");
if (pSize == null||pSize == "") pSize = "25"; int intpSize = 0; try{ intpSize = Integer.parseInt(pSize); }catch (NumberFormatException nfe){ intpSize = 20; //nfe.printStackTrace(); } cPager.currentPage = intpNum; cPager.pageSize = intpSize; cPager.totalRows = total;

return cPager; } }

///////////////////////////////////////////////////////////////*

4)UserDAO.java

package Test;

import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList;

public class UserDAO {

/// / 根据指定的页码范围查找数据 / @param pageSize / @param pageNumber / @return /*/ public static ArrayList getUsers(int pageSize, int pageNumber) {

// SQL Server写法 // String sql = "select top " + pageSize + " / from userinfo" // + " where id not in " + "(select top " // + ((pageNumber - 1) / pageSize) // + " id from userinfo order by id)" + " order by id";

// oracle写法
// String sql1 ="select / from " + // "(select rownum r,userinfo./ from userinfo " + // "where rownum < "+((pageNumber - 1) / pageSize + pageSize)+"t2 where t2.r >= "+((pageNumber - 1) / pageSize)+"";

if(((pageNumber - 1) /* pageSize)<0) return null;

String sql = "select /* from userinfo order by id asc limit "

+ (pageNumber - 1) /* pageSize + "," + pageSize;

ArrayList UserInfoList = new ArrayList();

Connection conn = null; Statement st = null; ResultSet rs = null;

try { conn = DB.getConn(); System.out.println(sql); st = conn.createStatement(); rs = st.executeQuery(sql);

while (rs.next()) { UserInfo user = new UserInfo(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setAge(rs.getString("age")); UserInfoList.add(user); } } catch (SQLException e) { e.printStackTrace(); } finally { DB.closeRs(rs); DB.closeStmt(st); } return UserInfoList; }

/// / 返回总记录数 / @return // public static int getCount() { String sql = "select count(/) from userinfo"; int count = 0;

Connection conn = null; Statement st = null; ResultSet rs = null;

try { conn = DB.getConn(); st = conn.createStatement(); rs = st.executeQuery(sql);

while (rs.next()) { count = rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } finally { DB.closeRs(rs); DB.closeStmt(st); } System.out.println("sql记录数:"+count); return count; }

} ///////////////////////////////////////////////////////////////* 5)jsp页面 pageTest.jsp

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"> <%@ page import="Test./"%> <%@ page import="java.util./"%> <% int total = UserDAO.getCount(); Pager pager = Pager.getInstance(request,total); String htmlcode = pager.getNavigate(); String pageNum = request.getParameter("pageNumber"); int pageNumber = 1; if (pageNum == null || pageNum=="" ) { pageNumber = 1; } else { pageNumber = Integer.parseInt(pageNum); }

ArrayList al = UserDAO.getUsers(pager.getPageSize(),pageNumber); request.setAttribute("users", al); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Page Test5 没有找到相应的记录

id name age

<%=htmlcode%> 来源: http://blog.csdn.net/wangxiaoyi2 严禁发表涉及封建迷信、国家政治等敏感问题的内容 ■ 对本文的评价(带 / 为必填内容,400字以内) 严禁发表涉及封建迷信、国家政治等敏感问题的内容。 / 您的姓名 您的电子邮件 您的个人主页 /* 您的评价 ■ 以往的评价 以上文章版权由原作者所有。未经同意,不得将其任何一部分复制、转载、发布等未授权操作。

Java学习室 — 陈伟波个人主页 E-mail: zz3zcwb@sina.com COPY RIGHT 2005

redhat 6.5下FTP安装及配置

Posted on

redhat 6.5下FTP安装及配置

一、**FTP**的安装

1、检测是否安装了FTP:[root@localhost ~]/# rpm -q vsftpd

如果安装了会显示版本信息:

[root@localhost ~]/# vsftpd-2.0.5-16.el5_5.1 否则显示:[root@localhost ~]/# package vsftpd is not installed 2、如果没安装FTP,运行yum install vsftpd命令 [root@localhost ~]/# yum install vsftpd [root@localhost ~]/# 3、完成ftp安装后,将/etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root这一行注释掉 /# root 4、执行以下命令 /#setsebool -P ftpd_disable_trans=1 修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/ 5、重启ftp进程 /#service vsftpd restart

注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。 ftp服务器就可以使用了。

///////////////////////////////////////////////////////////////////// 二、**vsftpd**的配置文件说明:* vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。 vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。 vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。 (1)用户登录控制 anonymous_enable=YES,允许匿名用户登录。 no_anon_password=YES,匿名用户登录时不需要输入密码。 local_enable=YES,允许本地用户登录。 deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。 banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。 (2)用户权限控制 write_enable=YES,开启全局上传权限。 local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。 anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。 anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。 chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户! chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。 chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。 chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。 nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。 async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错! ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。 注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。 这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。 (3)用户连接和超时选项 idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。 data_connection_timeout=120,设定默认的数据连接超时时间。 (4)服务器日志和欢迎信息 dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。 ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。 xferlog_enable=YES,启用记录上传/下载活动日志功能。 xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。 anonymous_enable=YES允许匿名登录local_enable=YES允许本地用户登录 write_enable=YES开放本地用户写权限 local_umask=022设置本地用户生成文件的掩码为022 /#anon_upload_enable=YES此项设置允许匿名用户上传文件 /#anon_mkdir_write_enable=YES开启匿名用户的写和创建目录的权限 dirmessage_enable=YES当切换到目录时,显示该目录下的.message隐藏文件的内容 xferlog_enable=YES激活上传和下载日志 connect_from_port_20=YES启用FTP数据端口的连接请求 /#chown_uploads=YES是否具有上传权限.用户由chown_username参数指定。 /#chown_username=whoever指定拥有上传文件权限的用户。此参数与chown_uploads联用。 /#xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES使用标准的ftpd xferlog日志格式 /#idle_session_timeout=600此设置将在用户会话空闲10分钟后被中断 /#data_connection_timeout=120将在数据连接空闲2分钟后被中断 /#ascii_upload_enable=YES启用上传的ASCII传输方式 /#ascii_download_enable=YES启用下载的ASCII传输方式 /#ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息 /#deny_email_enable=NO此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。 /#banned_email_file=/etc/vsftpd.banned_emails指定包含拒绝的e-mail地址的文件. /#chroot_list_enable=YES设置本地用户登录后不能切换到自家目录以外的别的目录 /#chroot_list_file=/etc/vsftpd.chroot_list /#ls_recurse_enable=YES pam_service_name=vsftpd设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/ userlist_enable=YES此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。 listen=YES指明VSFTPD以独立运行方式启动 tcp_wrappers=YES在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES

三、举例建立一个名为**test**的账户并进行配置

根据实际情况对FTP进行配置后,下面举例介绍建立一个FTP账户并进行简单的配置:

1、创建一个账号为test的账户:

/#mkdir /tmp/test //首先创建好目录

/#adduser -d /tmp/test -g ftp -s /sbin/nologin test //-s /sbin/nologin是让其不能登陆系统,-d是指定用户目录为/opt/srsman,即该账户只能登陆ftp,却不能用做登陆系统用。

/#passwd test

Changing password for user beinan.//接下来会出现让你设置新的密码

New password:

Retype new password: passwd: all authentication tokens updated successfully

创建账户成功!

2、限制用户目录,不得改变目录到上级

修改/etc/vsftpd/vsftpd.conf 将这两行 /#chroot_list_enable=YES /#chroot_list_file=/etc/vsftpd.chroot_list 注释去掉 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list

新增一个文件: /etc/vsftpd/chroot_list 内容写需要限制的用户名: test

重新启动vsftpd

/#service vsftpd restart

3、最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:

(1)找到/etc/rc.local文件

(2)打开该文件,在最后一行添加:service vsftpd start

(3)保存,退出

4、通过在“我的电脑”中输入ftp://192.168.179.30(填该ftp服务器ip地址)进入ftp服务器,输入设置好的账户登陆即可。

rdesktop安装和使用

Posted on

rdesktop安装和使用

  • 到官方网站去下载最新版的rdesktop, http://www.rdesktop.org ,目前最新版本为:rdesktop 1.5.0,Source(211KB)
  • [root@lvdbing software]/# tar -xvzf rdesktop-1.5.0.tar.gz (解压)
  • [root@lvdbing software]/# cd rdesktop-1.5.0; ./configure
  • [root@lvdbing rdesktop-1.5.0]/# make; make install (编译,安装)  注:在安装CentOS时,记得要把开发工具包给安装上,否则可能安装不成功
  • [root@lvdbing rdesktop-1.5.0]/# ls -l /usr/local/bin/rdesktop -rwxr-xr-x 1 root root 182708 Jan 14 14:00 /usr/local/bin/rdesktop (确认安装)

最后:测试连接

  • 编写选择脚本 (因为运行的windows服务器不‍只一台)
  • [root@lvdbing Desktop]/# cat SelectHost.sh /#!/bin/bash echo "Select Rmote Hostname:" echo "1): 192.168.1.30" echo "2): 192.168.1.40" echo "3): 192.168.1.50" echo "" echo "Please select remote host :" read host case "$host" in 1) rdesktop -f -a 16 192.168.1.30
      ;;
    
    2) rdesktop -f -a 16 192.168.1.40
      ;;
    
    3) rdesktop -f -a 16 192.168.1.50
      ;;
    
    /*) echo "Error,Please select 1,2 or 3: "
      ;;
    
    esac /#其中选项-f为全屏显示,-a 16 为显示像素为16, 192.168.1.30为主机名
  • 使用Ctrl+Alt+Enter可以退出全屏.
  • 连接效果图 

centos6.5 安装fcitx

Posted on

centos6.5 安装fcitx

因为选择的是最小安装,所有需要安装很多包啦

一、首先把ibus卸载啦 yum remove ibus 二、**Fcitx,依赖于:** 1、安装intltool

2、可以用 yum install xxx软件包名,来提前安装它们,解决依赖问题。(这一步很重要!) yum install perl-XML-Parser libtoolize gettext gettext-devel libXft libXft-devel libXpm libXpm-devel
automake autoconf libXtst-devel gtk+-devel gcc zlib-devel libpng-devel
gtk2-devel glib-devel 缺少libxml2

安装libxml2-devel 三、下载安装fcitx

1、下载Fcitx最新版本的源码包:wget http://www.fcitx.org/download/fcitx-3.6.3.tar.bz2 2、解压缩到 /usr/src 目录下:tar jxvf fcitx-3.6.3.tar.bz2 -C /usr/src 3、进入目录:cd /usr/src/fcitx-3.6.3 4、生成”.configure“文件: ./autogen.sh 5、开始编译: ./configure

  1. 正式安装: make make install
  2. 测试下是否安装成功:输入fcitx -h,如果安装成功,应该能得到帮助文件的,如下: [root@CentOS ~]/# fcitx -h Usage: fcitx [OPTION] -d run as daemon(default) -D don’t run as daemon -c (re)create config file in home directory and then exit -n[im name] run as specified name -v display the version information and exit -h display this help and exit 三、配置Fcitx为默认输入法 方法一:(推荐此法!)
  3. 新建配置文件 vim /etc/X11/xinit/xinput.d/fcitx.conf ,内容为: XIM=fcitx XIM_PROGRAM=/usr/local/bin/fcitx XIM_ARGS=”-d” GTK_IM_MODULE=fcitx QT_IM_MODULE =fcitx
  4. 然后在/etc/alternatives/目录下,将符号链接xinputrc删除,重新建一个: mv /etc/alternatives/xinputrc /etc/alternatives/xinputrc.bak rm –rf /etc/alternatives/xinputrc ln -s /etc/X11/xinit/xinput.d/fcitx.conf /etc/alternatives/xinputrc 注:如果你使用的桌面是英文环境的,还需要在使用用户的用户目录.bashrc配置文件里添加如下内容: export LANG=”zh_CN.UTF-8″ export LC_CTYPE=”zh_CN.UTF-8″ export XIM=fcitx export XIM_PROGRAM=fcitx export GTK_IM_MODULE=xim export XMODIFIERS=”@im=fcitx” 方法二:(此法在CentOS 5.3下可以,在5.5里有问题。)
  5. 新建配置文件:vim /etc/X11/xinit/xinput.d/fcitx,内容为: XIM=fcitx XIM_PROGRAM=fcitx GTK_IM_MOUDLE=fcitx QT_IM_MOUDLE=fcitx 保存退出,重启电脑
  6. 查询Fcitx是否开机运行。终端下输入:fcitx,应该是提示:Start FCITX error. Another XIM daemon named SCIM is running?这样就对了,直接到”4“
  7. 如果没任何提示,则:ln -s /etc/X11/xinit/Xinput.d/fcitx /$HOME/.xinputrc
  8. 输入: fcitx -nb ,即可看到输入框 默认fcitx启动后,是在后台运行的,因此看不到输入框,用上面的命令就可以调出来了。 ctrl+空格 切换输入法。 配置fcitx输入法修改vim ~/.fcitx/config文件中的相应偏好设置。 注意:如果你的输入法安装了,但是又不能按ctrl+space杂办,是因为你还缺少啦一个库文件 yum install gtk2-immodule-xim 安装好就可以使用啦 **四、卸载方法 进入目录:cd /usr/src/fcitx-3.6.3 卸载:make uninstall 附:我的fcitx配置文件如下 vim ~/.fcitx/config 五、配置文件** [程序] 显示字体(中)=宋体 显示字体(英)=Courier 显示字体大小=20 主窗口字体大小=12 是否使用AA字体=1 [输出] 数字后跟半角符号=1 Enter键行为=1 分号输入英文=0 大写字母输入英文=1 联想方式禁止翻页=1 LumaQQ支持=0 [界面] 候选词个数=9 主窗口是否使用3D界面=0 输入条使用3D界面=1 主窗口隐藏模式=0 是否自动隐藏输入条=0 /#输入条固定宽度仅适用于码表输入法,0表示不固定宽度 输入条固定宽度=600 序号后加点=0 显示打字速度=1 光标色=92 210 131 主窗口背景色=220 220 220 主窗口线条色=100 180 255 主窗口输入法名称色=170 170 170 150 200 150 0 0 255 输入窗背景色=240 240 240 输入窗提示色=255 0 0 输入窗用户输入色=0 0 255 输入窗序号色=200 0 0 输入窗第一个候选字色=0 150 100 /#该颜色值只用于拼音中的用户自造词 输入窗用户词组色=0 0 255 输入窗提示编码色=100 100 255 /#五笔、拼音的单字/系统词组均使用该颜色 输入窗其它文本色=0 0 0 输入窗线条色=100 200 255 输入窗箭头色=255 150 255 虚拟键盘窗背景色=220 220 220 虚拟键盘窗字母色=80 0 0 虚拟键盘窗符号色=0 0 0 /#除了“中英文快速切换键”外,其它的热键均可设置为两个,中间用空格分隔 [热键] 打开/关闭输入法=CTRL_SPACE /#中英文快速切换键 可以设置为L_CTRL R_CTRL L_SHIFT R_SHIFT 中英文快速切换键=L_CTRL 双击中英文切换=0 击键时间间隔=250 光标跟随=CTRL_K GBK支持=CTRL_M 联想支持=CTRL_L 反查拼音=CTRL_ALT_E 全半角=SHIFT_SPACE 中文标点=ALT_SPACE 上一页=- 下一页== 第二三候选词选择键=SHIFT [输入法] 使用拼音=1 使用双拼=0 使用区位=1 使用码表=1 提示词库中的词组=0 [拼音] 使用全拼=0 拼音自动组词=1 保存自动组词=0 增加拼音常用字=CTRL_8 删除拼音常用字=CTRL_7 删除拼音用户词组=CTRL_DELETE /#拼音以词定字键,等号后面紧接键,不要有空格 拼音以词定字键=[] /#重码调整方式说明:0–>不调整 1–>快速调整 2–>按频率调整 拼音单字重码调整方式=2 拼音词组重码调整方式=1 拼音常用词重码调整方式=0 是否模糊an和ang=0 是否模糊en和eng=0 是否模糊ian和iang=0 是否模糊in和ing=0 是否模糊ou和u=0 是否模糊uan和uang=0 是否模糊c和ch=0 是否模糊f和h=0 是否模糊l和n=0 是否模糊s和sh=0 是否模糊z和zh=0