用友NC系统支持JSF+PrimeFaces配置参考

nc 接口调用后台接口 校验登录权限 报错解决办法 调用接口前设置登录信息 可以避开权限; 代码如下: String usercode = "admin"; String ds = "design"; InvocationInfoProxy.getInstance().setUserCode(usercode); InvocationInfoProxy.getInstance().setUserDataSource(ds); ISecu 阅读详情

适用产品版本:NC57以及NC65

bean管理方式:ManagedBean,须配置文件注册

配置步骤:

1、需要的类包括:jsf-api-2.2.20.jar,jsf-impl-2.2.20.jar,el-api-2.2.jar, el-impl-2.2.jar,下载后放置到nchome\external\lib目录下(也可放置在自定义web应用的\WEB-INF\lib目录下)。

2、在nchome\hotwebs目录下创建web应用,并在WEB-INF目录下配置web.xml和faces-config.xml

      其中web.xml中增加jsf支持   

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp">

...
<!-- Define the JSF servlet (manages the request processing life cycle for JavaServer Faces) -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map following files to the JSF servlet -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

...
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

      faces-config.xml 用于bean的定义,bean对应的类应放置于/WEB-INF/classes下

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<managed-bean>
    <managed-bean-name>helloWorld</managed-bean-name>
    <managed-bean-class>com.codenotfound.primefaces.HelloWorld</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

...
</faces-config>

   测试Bean代码

package com.codenotfound.primefaces;

import java.io.Serializable;

public class HelloWorld implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7844457420994424501L;
	/**
	 * 
	 */
	private String firstName;
	private String lastName;

	public String getFirstName() {
		return firstName;
	}

	public HelloWorld() {
		super();
		// TODO Auto-generated constructor stub
		firstName = "John";
		lastName = "Doe";
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String showGreeting() {
		return "Hello " + firstName + " " + lastName + "!";
	}
}

    如果使用PrimeFace,需要将Primeface的primefaces-6.2.jar以及all-themes-1.0.10.jar放置于/WEB-INF/lib下,由于NC57仅支持JDK1.5和JDK1.6,因此primeface需要选择对应的版本,NC65支持jdk1.7,可使用Primefaces7

   在web.xml中设置primeface的theme

	<context-param>
            <param-name>primefaces.THEME</param-name>
            <param-value>bootstrap</param-value>
	</context-param>

  测试helloworld.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui">

<h:head>
  <title>PrimeFaces Hello World Example</title>
</h:head>

<h:body>
  <h:form>

    <p:panel header="PrimeFaces Hello World Example">
      <h:panelGrid columns="2" cellpadding="4">
        <h:outputText value="First Name: " />
        <p:inputText value="#{helloWorld.firstName}" />

        <h:outputText value="Last Name: " />
        <p:inputText value="#{helloWorld.lastName}" />

        <p:commandButton value="Submit" update="greeting"
          oncomplete="PF('greetingDialog').show()" />
      </h:panelGrid>
    </p:panel>

    <p:dialog header="Greeting" widgetVar="greetingDialog"
      modal="true" resizable="false">
      <h:panelGrid id="greeting" columns="1" cellpadding="4">
        <h:outputText value="#{helloWorld.showGreeting()}" />
      </h:panelGrid>
    </p:dialog>

  </h:form>
</h:body>
</html>

   页面访问运行结果如下:

   

   NC65设计时,如果需要调用NC接口,需要处理登陆验证,可采用两种处理方式:

   1、直接使用令牌回调接口

NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes());

   2、调用后台登陆

//根据实际环境设置
String groupcode = ""; 
String password = "";
String userName = "";
AuthenSubject authenSub = new AuthenSubject();
	
authenSub.setUserCode(userName);
	
authenSub.setUserPWD(password);
LoginRequest loginRequest = new LoginRequest();
loginRequest.putAttachProp(AuthenSubject.class.getName(), authenSub);
loginRequest.setUserCode(userName);
loginRequest.setUserPWD(password);
loginRequest.setLangCode("cn");
	
loginRequest.setBusiCenterCode(groupcode );
InvocationInfoProxy.getInstance().setUserCode(userName);
INCLoginService loginService = (INCLoginService) NCLocator
						.getInstance().lookup(INCLoginService.class);
LoginResponse loginRespnse = loginService.login(loginRequest,  true);
int loginResult = loginRespnse.getLoginResult();  //返回0表示登陆成功

 

el-api.jar el-api.jar 立即下载

相关推荐

Zemax中场曲与畸变图的深度解析与应用场景对比

本文深度解析了Zemax中场曲/畸变图与网格畸变图的核心原理、计算逻辑与适用场景。通过对比常规成像镜头、扫描镜头、鱼眼镜头及变形宽银幕镜头等实际案例,详细阐述了如何根据系统对称性、视场角及核心需求选择正确的分析工具与畸变评价标准,为光学设计中的畸变诊断与优化提供清晰指导。

sand8的博客 482

NC二开经验集合

1) 单点登录 单点登陆到NC客户端: 1、得到key: http://服务器地址/service/ssoRegServlet?userCode=用户名 例: http://127.0.0.1/service/ssoRegServlet?userCode=100003 ...

百度无痕的博客 6455

【华为Hilink SDK Linux系统开发】目录 开源一小步

目录 【华为Hilink开发】第一章:华为hilink平台简介及开发流程 【华为Hilink开发】第二章:华为hilink SDK网络适配、网关添加删除 【华为Hilink开发】第三章:华为hilink SDK子设备添加、删除 【华为Hilink开发】第四章:华为hilink SDK子设备控制及同步 【华为Hilink开发】第五章:华为hilink SDK适配遇到的问题 ...

开源一小步 3620

用友NCC里引用spring定时task来执行定时任务

用友/ncc/NCC定时任务

a799848043的博客 450

科研党必看!Zotero+Claude3插件实战:如何用AI高效阅读文献(附详细配置步骤)

本文详细介绍了如何通过Zotero与Claude3插件的深度整合,实现科研文献的高效阅读与管理。从环境配置到核心功能实战,包括智能摘要生成、精准学术翻译和论文写作辅助等,帮助科研人员大幅提升工作效率。特别适合需要处理大量文献的研究者使用。

o0p1q2r3的博客 434

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

用友nc系统服务器端口号,用友NC数据库服务器参数配置说明

用友NC数据库服务器参数配置说明--17.日志文件的大小 (logfilsiz) (4K) update database configuration for ncdata00 using logfilsiz 51200; --18.主日志文件数目 (logprimary) update database configuration for ncdata00 using logprimary ...

weixin_26833503的博客 1721

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3706

模拟用户登录,不受单点登录控制

import nc.bs.framework.server.ISecurityTokenCallback; ISecurityTokenCallback sc = (ISecurityTokenCallback) NCLocator.getInstance().lookup(ISecurityTokenCallback.class); sc.token(“NCSystem”.getBytes(),...

Cc_Rain 929

Oracle EBS FA 如何打开关闭的资产会计期间?

用户“运行折旧”,误勾选为“关闭期间”,还有一部分资产还需要操作报废和调整,希望后台打开关闭的资产会计期。

陈显平的专栏-Oracle EBS 1031

[QMT量化交易小白入门]-七十六、从tick数据中获取高频交易的量价背离信号

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 791

flowable启动报错

version mismatch: library version is ‘6.4.1.3’, db version is 5.99.0.0 Hint: 需要配置act_ge_property 和 ACT_ID_PROPERTY 两个表 INSERT into act_ge_property(NAME_,VALUE_,REV_) VALUES ('cfg.execution-related-entities-count','true','1'), ('cfg.task-related-entities

德川家康 2341

Scratch全攻略:从入门到实践的编程之旅

Scratch 是一款由麻省理工学院(MIT)开发的图形化编程工具 ,它诞生的初衷是为了让编程教育更加普及,尤其是让孩子们能够轻松接触和学习编程。与传统的基于文本代码的编程方式不同,Scratch 通过将编程指令以图形化的积木形式呈现,极大地降低了编程的门槛,让编程变得如同搭积木一样简单有趣。

邓邓子的博客 1万+

Java问题:java.lang.NoClassDefFoundError

情况1:引用包冲突 情况2:缺失包 在NC产品中,缺失包在测试环境中可以有三种放置目录 1、nchome\external\lib 2、nchome\lib 3、

qq_40875057的博客 278

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

nc java 5.7,用友ERP NC v5.7 ——安装详解篇

环境描述:(1)操作系统(OS):Windows Server 2008 Enterprise 64bit(2)数据库:Oracle 11g 64bit(3)ERP :用友NC V5.7二、建立数据表空间及用户名:将如下脚本数据导入Oracle中,如下图:注:为了方便大家 复制 下面的脚本,故同时采用2种方式:(1)文本 (2)截图CREATE TABLESPACE NNC_DATA01 DA...

weixin_26858217的博客 1250

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用友NC63界面新增按钮实现方法

NC开发最基本的添加按钮并实现按钮事件业务逻辑处理,下面写一个例子介绍该过程的实现方法。 拿物流执行模块作为例子,在计量单维护界面增加两个按钮“A杆”“B杆”,单击这两个按钮,分别控制A和B道闸栏杆起降。 第一步:              找到该页面的配置文件。打开“应用管理平台”--“开发配置工具”--“功能注册”节点,找到页面,查看参数注册,查看配置文件 第二步:   

凌霄之志 1万+

NCCloudStudio2021.11 开发工具优化合集

NCCloudStudio2021.11 开发工具优化合集,增加NCC客户端启动、upm文件打开报错处理、执行sysConfig、直接打开nchome/hotwebs/nccloud目录、发布NCC鉴权文件到nchome等

kemoing的博客 1903

用友NCC产品API使用指南

轻易云用友NCC产品API集成专题 open api简介 Open API即开放API,也称开放平台。 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。 就现在互联网上Open API的形态来看,主要分成两种:标准REST和类REST(也可以叫做RPC形

vincent067的博客 9576

NC启动JAVA虚拟机的配置

-Dfile.encoding=GBK -Dnc.exclude.modules=${FIELD_EX_MODULES} -Dnc.server.location=${FIELD_NC_HOME} -DEJBConfigDir=${FIELD_NC_HOME}/ejbXMLs -DExtServiceConfigDir=${FIELD_NC_HOME}/ejbXMLs -Xmx768m -XX:MaxPermSize=256m -Duap.hotwebs=lfw,portal,fs,uapws -...

xyl的博客 659

NC开发笔记——NC63开发方法总结

1、提示信息输出   方法一:写在ToPanel里面的publicvoid valueChanged(ValueChangedEvent event) {方法中添加如下代码    ShowStatusBarMsgUtil.showStatusBarMsg("—→  ★正在使用综合评定登记,祝您使用愉快★",getModel().getContext()); 方法二: //定

獨立小橋風滿袖 1万+

JSF+Primefaces实现简单的HelloWorld示例

    JSF相关的概念这里就不作赘述了。    直接切入正题。    首先,JSF通常运行在GlassFish容器里。如果使用Tomcat可能出现一些奇怪的问题,比如:     java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet。    首先,是JSF需要的最基础的包:javaee-web-api和primeface...

qq_22930287的博客 1379

nc.bs.framework.exception.FrameworkSecurityException: User session expired,please re login!(0)

经过定位发现是一下标红的地方报错 解决方法: 在代码中加入以下代码, NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes()); ...

siyi1219的博客 1万+

NC数据库相关操作常用API

前台 1.HYPubBO_Client类 该类是对实例对象VO进行相关操作,里面的方法都是公共静态方法,所以调用的话就用类引用相关的方法即可。 public class HYPubBO_Client { private static IUifService service = (IUifService) NCLocator.getInstance().lookup(IUifService.class.getName()); /** * @return Returns the service. *

u010741112的博客 3574

JSF与primerfaces---JSF简单原理说明

一.jsf(java server faces)的运行原理(工作方式)1.jsf应用是事件驱动的,当一个事件发生时(比如用户单击一个按钮),事件通知通过HTTP发往服务器,服务器端使用叫做FacesServlet的特殊servlet处理该通知,web容器里每一个jsf应用都有它自己的FacesServlet;在后台,每一个jsf请求都触发了3件事情:1)FacesServlet创建FacesCont

heuzxl的专栏 726

NC65 系统用户登陆验证逻辑

假设登陆用户名为:liangsl,登陆密码为:1234qwer。

u010741112的博客 774
上一篇: 用友NC65 Rest接口开发及调试(二)
下一篇: U8Cloud 3.5 试用笔记
hot.wind
博客等级 码龄24年 125粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值