1、網頁設計師非常有用的幾個在線工具
幾個網頁設計工作中經常會用的在線工具,能夠大大的提供工作效率!
ProCSSor
ProCSSor是一個很不錯的CSS代碼美化工具,它可以輕松的把代碼轉換成很美觀的格式。
jsFiddle
JsFiddle有多種用途,其中一個用法就是可以在線編輯HTML, CSS 和JavaScript片段,而且代碼可以分享,還可以嵌入到你的博客中等等。
Frame Box
Frame Box是一個非常好用的用於在線分享線框圖(wireframes)的工具。
Spritebox
Spritebox是一個所見即所得的工具,幫助Web設計者迅速而輕松地從一張精靈圖片(CSS Sprit Image)創建CSS類和ID選擇符樣式。這里涉及到一項技術叫CSS Sprites,在國內很多人叫CSS精靈,它是的基本原理是使用CSS的背景系列屬性的組合進行背景圖片的精確定位。
CSS3 Generator
這是一個簡單的跨瀏覽器CSS3樣式生成器,可以生成你想要的任何值。
Super Conversion Button
這個工具可以幫助你瞬間生成一個美觀的試用(Try it now)按鈕。
wordmark.it
這個工具之前曾介紹過,可以幫助你直觀的查看當前電腦上安裝了哪些字體。
0 to 255
2、java工作流框架activiti的bpmn設計器里怎麼找不到補償邊界事件和取消邊界事件呢?
無論是設計工具,還是源代碼和用戶手冊,都沒有見過你說的這兩個概念。
3、activiti6的流程編輯器怎麼整合進自己的項目中
建議你可以看一下咖啡兔的相關技術博文:網頁鏈接,
activiti6和activiti5整合方式一致
1. 為什麼要整合
Activiti 5.10版本把原本獨立的Activiti Modeler模塊整合到了Activiti Explorer中,兩者相結合使用起來很方便,通過Modeler設計的流程模型可以直接部署到引擎,也可以把已經部署的流程轉換為Model從而在Modeler中編輯。
在實際應用中也有這樣的需求,把Modeler整合到業務系統中可以供管理員使用,或者作為BPM平台的一部分存在,很遺憾官方沒有給出如何整合Modeler的文檔。
2. 整合工作
2.1 下載源碼
首先需要從Github下載源碼:https://github.com/Activiti/Activiti;可以直接用Git克隆,也可以下載zip格式的壓縮包。
2.2 復制文件
復制的所有文件均在activiti-webapp-explorer2目錄中。
src/main/resources中的editor.html、stencilset.json、plugins.xml到項目源碼的源碼根目錄,保證編譯之後在classes根目錄
src/main/webapp中的api、editor、explorer、libs到項目的webapp目錄(與WEB-INF目錄同級)
2.3 添加依賴
?
<dependency> <groupid>org.activiti</groupid> <artifactid>activiti-explorer</artifactid> <version>5.14</version> <exclusions> <exclusion> <artifactid>vaadin</artifactid> <groupid>com.vaadin</groupid> </exclusion> <exclusion> <artifactid>dcharts-widget</artifactid> <groupid>org.vaadin.addons</groupid> </exclusion> <exclusion> <artifactid>activiti-simple-workflow</artifactid> <groupid>org.activiti</groupid> </exclusion> </exclusions></dependency><dependency> <groupid>org.activiti</groupid> <artifactid>activiti-modeler</artifactid> <version>5.14</version></dependency>2.4 添加Java類
添加一個ExplorerRestApplication.java類保存到項目中,注冊了一些REST路由。
?
2526272829 package org.activiti.explorer.rest.application; import org.activiti.editor.rest.application.ModelerServicesInit;import org.activiti.rest.api.DefaultResource;import org.activiti.rest.application.ActivitiRestApplication;import org.activiti.rest.filter.JsonpFilter;import org.restlet.Restlet;import org.restlet.routing.Router; public class ExplorerRestApplication extends ActivitiRestApplication { public ExplorerRestApplication() { super(); } /** * Creates a root Restlet that will receive all incoming calls. */ @Override public synchronized Restlet createInboundRoot() { Router router = new Router(getContext()); router.attachDefault(DefaultResource.class); ModelerServicesInit.attachResources(router); DiagramServicesInit.attachResources(router); JsonpFilter jsonpFilter = new JsonpFilter(getContext()); jsonpFilter.setNext(router); return jsonpFilter; } }2.5 配置web.xml
在web.xml文件中添加如下配置:
?
12345678910111213141516 <!-- Restlet adapter, used to expose modeler functionality through REST --><servlet> <servlet-name>RestletServlet</servlet-name> <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> <init-param> <!-- Application class name --> <param-name>org.restlet.application</param-name> <param-value>org.activiti.explorer.rest.application.ExplorerRestApplication</param-value> </init-param></servlet> <!-- Catch all service requests --><servlet-mapping> <servlet-name>RestletServlet</servlet-name> <url-pattern>/service/*</url-pattern></servlet-mapping>2.6 控制器
使用Spring MVC做了一個簡單的封裝,也可以使用其他的MVC實現。
?
2526272829303132333435363738394155156157158159160161162163 package me.kafeitu.demo.activiti.web.workflow; import java.io.ByteArrayInputStream;import java.util.List; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.activiti.bpmn.converter.BpmnXMLConverter;import org.activiti.bpmn.model.BpmnModel;import org.activiti.editor.constants.ModelDataJsonConstants;import org.activiti.editor.language.json.converter.BpmnJsonConverter;import org.activiti.engine.RepositoryService;import org.activiti.engine.repository.Deployment;import org.activiti.engine.repository.Model;import org.apache.commons.io.IOUtils;import org.apache.commons.lang3.StringUtils;import org.codehaus.jackson.JsonNode;import org.codehaus.jackson.map.ObjectMapper;import org.codehaus.jackson.node.ObjectNode;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** * 流程模型控制器 * * @author henryyan */@Controller@RequestMapping(value = "/workflow/model")public class ModelController { protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired RepositoryService repositoryService; /** * 模型列表 */ @RequestMapping(value = "list") public ModelAndView modelList() { ModelAndView mav = new ModelAndView("workflow/model-list"); List<model> list = repositoryService.createModelQuery().list(); mav.addObject("list", list); return mav; } /** * 創建模型 */ @RequestMapping(value = "create") public void create(@RequestParam("name") String name, @RequestParam("key") String key, @RequestParam("description") String description, HttpServletRequest request, HttpServletResponse response) { try { ObjectMapper objectMapper = new ObjectMapper(); ObjectNode editorNode = objectMapper.createObjectNode(); editorNode.put("id", "canvas"); editorNode.put("resourceId", "canvas"); ObjectNode stencilSetNode = objectMapper.createObjectNode(); stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#"); editorNode.put("stencilset", stencilSetNode); Model modelData = repositoryService.newModel(); ObjectNode modelObjectNode = objectMapper.createObjectNode(); modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, name); modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1); description = StringUtils.defaultString(description); modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description); modelData.setMetaInfo(modelObjectNode.toString()); modelData.setName(name); modelData.setKey(StringUtils.defaultString(key)); repositoryService.saveModel(modelData); repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8")); response.sendRedirect(request.getContextPath() + "/service/editor?id=" + modelData.getId()); } catch (Exception e) { logger.error("創建模型失敗:", e); } } /** * 根據Model部署流程 */ @RequestMapping(value = "deploy/{modelId}") public String deploy(@PathVariable("modelId") String modelId, RedirectAttributes redirectAttributes) { try { Model modelData = repositoryService.getModel(modelId); ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId())); byte[] bpmnBytes = null; BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode); bpmnBytes = new BpmnXMLConverter().convertToXML(model); String processName = modelData.getName() + ".bpmn20.xml"; Deployment deployment = repositoryService.createDeployment().name(modelData.getName()).addString(processName, new String(bpmnBytes)).deploy(); redirectAttributes.addFlashAttribute("message", "部署成功,部署ID=" + deployment.getId()); } catch (Exception e) { logger.error("根據模型部署流程失敗:modelId={}", modelId, e); } return "redirect:/workflow/model/list"; } /** * 導出model的xml文件 */ @RequestMapping(value = "export/{modelId}") public void export(@PathVariable("modelId") String modelId, HttpServletResponse response) { try { Model modelData = repositoryService.getModel(modelId); BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); JsonNode editorNode = new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId())); BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); BpmnXMLConverter xmlConverter = new BpmnXMLConverter(); byte[] bpmnBytes = xmlConverter.convertToXML(bpmnModel); ByteArrayInputStream in = new ByteArrayInputStream(bpmnBytes); IOUtils.copy(in, response.getOutputStream()); String filename = bpmnModel.getMainProcess().getId() + ".bpmn20.xml"; response.setHeader("Content-Disposition", "attachment; filename=" + filename); response.flushBuffer(); } catch (Exception e) { logger.error("導出model的xml文件失敗:modelId={}", modelId, e); } } }</pre> ### 2.7 注意事項 如果使用Spring代理引擎,並且在項目中同時有activiti.cfg.xml文件(不管在main/resources還是test/resources目錄),在activiti.cfg.xml裡面的引擎中添加下面的配置參數,否則會導致打開Modeler的編輯頁面時讀取數據返回**204**狀態碼。 <pre class="brush:xml"><property name="processEngineName" value="test"></property></pre> 引擎默認名稱為default,ProcessEngines.getDefaultProcessEngine()查詢時會先檢索main/resources,然後再檢索test/resources的activiti.cfg.xml和activiti-context.xml文件,所以當main/resources監測不到指定文件時就會導致該引擎被當做web應用的引擎對象,這樣會導致有兩個引擎,所以把引擎的名稱改為非默認的「default」。 ## 3. 中文亂碼問題解決辦法 在JVM參數中添加參數: > -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 **參考**:[在Activiti Modeler中設計的流程包含奇數個中文時不能部署問題](http://forums.activiti-cn.org/forum.php?mod=viewthread&tid=50&fromuid=2) ## 4. 效果截圖 在最新的kft-activiti-demo版本(1.7.0)中已經集成了Activiti Modeler,可以在線訪問,也可以下載源碼學習如何配置。 登錄[http://demo.kafeitu.me/kft-activiti-demo](http://demo.kafeitu.me/kft-activiti-demo)後選擇**流程管理**->**模型工作區**菜單項即可。 </model>4、網頁設計中常用的工具有哪些?輔助工具有哪些?
2 . HTML 入門例子
HTML入門例子 -- 自己可以嘗試編輯
HTML 入門例子示例 -- 可以嘗試編輯
* 在網頁中輸入文字
* 定義一個段落
* 定義多個段落
* 在一個段落中換行
* 為網頁加上水平分割線
* 定義文字的顏色
* 定義網頁的背景顏色
* 嘗試鏈接到百度和google
好通過上面的演練有點感覺了吧?下面開始詳細學習:)
<1>打開記事本:點擊"開始"--選擇"程序"--選擇"附件"--選擇"記事本"
<2>輸入下面代碼(直接拷貝過去就可以啦)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html>
<head>
<title> 歡迎來到夢之都 </title>
</head>
<body>
<p>這是我的第一個網頁,在這里
<a href="http://www.dream.com/xhtml/">
盡情學習HTML吧!
</a>吧!
</p>
</body>
</html>
<3>點擊"文件"--選擇"保存"--選擇文件類型為"所有文件"--文件名輸入"dream.html"並選擇文件保存地址.(記住一定要把文件的後綴存為.html或.htm,否則網頁無法顯示)
<4>現在我們可以雙擊這個文件.看看效果吧 .
現在解釋一下上面的例子:
* HTML文件就是一個文本文件.文本文件的後綴名是.txt,而HTML的後綴名是.html.
* <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">代表文檔類型,大致的意思就是:遵循嚴格的XHTML1的格式書寫.具體文檔類型後面有介紹(見文檔類型),現在只要照寫就形.
* HTML文檔中,第一個標簽是<html>.這個標簽告訴瀏覽器這是HTML文檔的開始(見html標簽).
* HTML文檔的最後一個標簽是</html>,這個標簽告訴瀏覽器這是HTML文檔的終止.
* 在<head>和</head>標簽之間的文本是頭信息.在瀏覽器窗口中,頭信息是不被顯示在頁面上的(見head標簽).
* 在<title>和</title>標簽之間的文本是文檔標題,它被顯示在瀏覽器窗口的標題欄(見title標簽).
* 在<body>和</body>標簽之間的文本是正文,會被顯示在瀏覽器中(見body標簽).
* 在<p>和</p>標簽代表段落(見p標簽).
* <a>和</a>定義了一個超鏈接,用戶只要點擊了"盡情學習",就可以鏈接到http://www.dream.com網站(見a標簽).
引用網址:http://www.dream.com/xhtml/novice/
幾個問題:
我只能使用記事本做編輯器嗎?
答:有很多編輯器可以使用,一些所見即所得的編輯器,比如Dreamweaver,Frontpage你可以很容易創建一個頁面,而不需要編寫代碼,但有可能產生一些垃圾代碼.
如果你想成為一名熟練的網路程序開發者,我強烈建議你用純文本編輯器編寫代碼,這有助於學習HTML基礎.當然也可以使用比較強大的文本編輯器,比如:EditPlus UltraEdit.
猴子推薦: 編輯網頁時可以同時使用Dreamweaver與EditPlus,Dreamweaver的強大功能可以快速的產生大量代碼,再通過EditPlus修正完善代碼.
我編寫完了HTML文件,但是雙擊後並不能在瀏覽器中看到結果,為什麼?
答:請確認你保存了文件,並且使用了正確的文件名和擴展名,例如:dream.html,並且確認你用瀏覽器打開的是同樣的文件.
我編輯了HTML文件,但是修改結果並沒有在瀏覽器中顯示,為什麼?
答:瀏覽器緩存了你原先的頁面,所以它不會讀取新的頁面.你修改了這個頁面,瀏覽器並不知道.請使用"刷新/重載"按鈕來強迫瀏覽器讀取編輯過的頁面,或按F5反復刷新.
怎麼顯示文件擴展名?
答:打開"我的電腦"--選擇"工具"--選擇"文件夾選項"--選擇"查看"--去掉"隱藏已知文件類型的擴展名"的對勾.
顯示文件擴展名
猴子推薦: FireFox瀏覽器在編輯網頁時是不可或缺的,我們應該同時使用IE與FireFox查看網頁效果.
延伸閱讀
* CSS 入門例子
5、activiti 怎麼調取js
使用activiti,怎麼整合到spring應該沒問題,在整合網頁設計器時主要是配置web.xml文件:
<!-- Restlet adapter, used to expose modeler functionality through REST --> <servlet> <servlet-name>ExplorerRestletServlet</servlet-name>
activiti的網頁設計器是使用rest技術,所以web.xml文件裡面需要配置一下rest。
6、怎麼整合activiti 的modeler 設計器
spring-context-3.1.0.RELEASE.jar spring-aop-3.1.0.RELEASE.jar aopalliance-1.0.jar spring-beans-3.1.0.RELEASE.jar pring-core-3.1.0.RELEASE.jar spring-expression-3.1.0.RELEASE.jar spring-asm-3.1.0.RELEASE.jar spring-webmvc-3.1.0.。
7、怎麼用activiti流程設計器
key是每個部署圖的唯一標示,可以在發布之前修改,發布之後你看看ge-byt這個表裡修改一下,沒改過,不知道有沒有關聯,估計不能改
8、請列舉出你在網頁設計中使用的工具軟體,並簡要說明其在網頁設計流程中的主要功能及作用
Dreamweaver 是一個「所見即所得」的可視化網站開發工具,主要用於動態網頁的開發;Flash主要用來製作動畫,Fireworks主要是用於對網頁上常用的jpg、gif的製作和處理,也可用於製作網頁布局,不過一般我們還是喜歡Photoshop 代替Fireworks
9、網頁設計中有哪些好用的工具
DW flash 做網頁必備
10、HTML設計器 編寫一個「HTML設計器」使用者通過這個工具能夠簡單的設計出一個網頁
超級DIY設計器 V7 具有以下功能:快速設計DIY配置、用向導設計DIY配置、列印DIY配置,並將DIY配置輸出為文本文件、HTML文件、論壇、剪貼板、或直接發布到Blog等眾多與DIY有關的功能,是電腦DIYer、要購買電腦的朋友和電腦經銷商最好的工具。注冊用戶可以享受到列印配置、輸出配置、向導設計等實用功能。
http://www.skycn.com/soft/11784.html